2016-10-22 2 views
1

私は2つの.jsファイルとHTMLを持っています。ある.jsファイルから別の.jsファイルに変数の値を初期化します。 HTMLファイルには、Jqueryのファンシーボックスがあります。私はJquery fancyボックスを開くとき。初期化されたvalriableは削除されますなぜ私は人を知らない。それを手伝ってください。なぜ変数値がjsファイルで削除されるのですか?私jqueryファンシーボックスを開くとき?

JS:

function createEventDlg() { 
     $.fancybox({ 
      href: "events/createEvent", 
      type: "iframe", // <-- whatever content image, inline, swf, etc 
      width: 600, 
      afterClose: openEventImageUpdate 
     }); 
    } 

HTML:

<ul class="nav navbar-nav navbar-left"> 
          <li class="li-search-logged"> 
          <!-- id="selectedValueId" --> 
           <select id="selectSearch"> 
            <option selected>Events</option> 
            <option>Connections</option> 
            <option>DFA Users</option> 
           </select> 
           <input type="text" id="auto-complete-tag" class="form-control" placeholder="Find Events, People, and Connections" /> 
           <button class="btn btn-positive" type="button"></button> 
          </li> 
          <li class="li-btn"><input type="button" value="Create" class="btn btn-positive" onclick='createEventDlg();' /></li> 
          <li class="li-btn"><input type="button" value="Browse" class="btn btn-positive" onclick="loadBrowseEventPage()" /></li> 
          <li class="li-btn"><input type="button" value="DFA" class="btn btn-positive" onclick="loadDFA()" /></li> 
         </ul> 

Browse.js:ここ

appRootUrl変数が値を持っています。例: "/ app"そして通知のメソッドを呼び出します。 jsのinit()メソッドその後、Notifications.jsのオブジェクトが初期化されます。私の問題は、jquery fancy boxを開くときです。初期化された変数の値が削除される理由はわかりません。この変数値をJquery ajax呼び出しに使用します。 notifications.jsには多くのメソッドがあるためです。それらのメソッドはその変数値を使用します。私を助けてください。

$(document).ready(function() { 
    <% 
ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); 
    Properties properties = new Properties(); 
    properties.load(classLoader.getResourceAsStream("app.properties")); 
    %> 
    var te = '${appRootUrl}'; 
    console.log('App root ulr : ' + te); 
    notifications.init('${appRootUrl}', "<%= properties.getProperty("node.server")%>");  
}); 

Notifications.js:

var notifications = { 
    appRootUrl : "something", 
    nodeServer : "something", 
    resource: { 
     user: { 
      findById: "https://stackoverflow.com/users/findbyid", 
      getAlerts: "https://stackoverflow.com/users/getalerts", 
      acceptChat: "https://stackoverflow.com/users/acceptchatinvite", 
      declineChat: "https://stackoverflow.com/users/declinechatinvite", 
      acceptFriend: "https://stackoverflow.com/users/acceptconnectioninvite", 
      declineFriend: "https://stackoverflow.com/users/declineconnectioninvite", 
      clearAlert: "https://stackoverflow.com/users/clearAlert", 
      get: "https://stackoverflow.com/users/getuser", 
      getEventPrivateChatHistory: "https://stackoverflow.com/users/eventPrivateChatHistory", 
      eventPrivateSend: "https://stackoverflow.com/users/eventPrivatesend", 
      dfaSend: "https://stackoverflow.com/users/dfasend", 
      eventRestart: "https://stackoverflow.com/users/eventrestart", 
      getFriendState: "https://stackoverflow.com/users/getFriendState", 
      getDfaHistory: "https://stackoverflow.com/users/dfahistory", 
      makeUserRelationshipNone: "https://stackoverflow.com/users/makerelationshipnone" 
     }, 
     event: { 
      getEventApprovedUsers: "/events/getApprovedUsers", 
      getDfaGroupChatHistory: "/events/getGroupchatHistory", 
      updateGroupChatMsgUrl: "/events/saveGroupchat", 
      get: "/events/getEvent" 
     } 
    }, 
    init: undefined 
}; 

notifications.init = function (appRootUrl, nodeServer) { 
    console.log('appRootUrl : ' + appRootUrl); 
    console.log('nodeServer : ' + nodeServer); 

    notifications.appRootUrl = appRootUrl; 
    notifications.nodeServer = nodeServer; 
    console.log('notifications : ' + JSON.stringify(notifications)); 
}; 

答えて

0

最後に、私の答えは、私はjQueryの空想ボックスから値を初期化する必要がある考え出しました。 The Jquery fancyボックスは現在のJSPとして動作します。 browse.jspから初期化される前です。ユーザーがJquery fancy boxをクリックしたとき。 JqueryFancyBox.JSPファイルをロードします。そこでは、値を初期化する必要があります。

コード例はここにある:

JqueryFancyBox.jsp:

<c:url var="appRootUrl" value="/"/> 
$(function() { 
      <% 
      ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); 
      Properties properties = new Properties(); 
      properties.load(classLoader.getResourceAsStream("app.properties")); 
      %> 
      notifications.init("${appRootUrl}", "<%= properties.getProperty("node.server")%>"); 
}); 
関連する問題