2011-04-25 9 views
0

각 요소 안에 간단한 하이퍼 링크가있는 LI 요소를 테스트하고 있습니다. 요소는 콜백 함수 (비동기)의 일부로서 생성되는 경우 - 1 - jQuery를 AJAX 호출 후 - 모든 LI 요소 jQuery.appendJavaScript 이벤트를 두 번 클릭하면 클릭

그러나

를 사용하여 실시간으로 생성 된 모든 일반적 2 작동 요소가 SYNCHRONOUSLY로 작성되면 클릭 한 번 두 번의 클릭 이벤트가 트리거됩니다.

아래에는 세 가지 JavaScript 기능이 있습니다. 그리고 두 개의 하드 코드 된 하이퍼 링크가 있음을 알아 두십시오 1. SYNC로 레이블이 붙습니다 2. A-SYNC로 레이블이 지정됩니다.

아이디어가 있으십니까?

MCRM.Handler.accounts_index = function(){ 
    console.log("MCRM.Handler.accounts_index"); 
     MCRM.Account.all(function(r){ 
      MCRM.Handler.accounts_list(r); 
      preventDefaultLink(); 
     }); 
    }; 



    MCRM.Handler.accounts_list = function(r){ 
      console.log("MCRM.Handler.accounts_list"); 
      $('#listAccount').append('<li class="arrow"><a href="app/views/accounts/show.html">A-SYNC</a></li>'); 
      for(var i = 0; i < r.length; i ++) { 
      record = r[i]; 
      $('#listAccount').append('<li class="arrow">' + MCRM.AccountsHelper.account_link(record) + '</li>'); 
      } 
    }; 

    MCRM.Account.all = function(success_callback2, options){ 
      var accounts; 
      console.log("MCRM.Account.all"); 
      $('#listAccount').append('<li class="arrow"><a href="app/views/accounts/show.html">SYNC</a></li>'); 
      var soap = "", 
      url = MCRM.SIEBEL_URL + "/eai_enu/start.swe?SWEExtSource=WebService&SWEExtCmd=Execute&UserName=" + MCRM.SIEBEL_USER + "&Password=" + MCRM.SIEBEL_PWD 
      soap = MCRM.XML_MY_ACCOUNTS; 
      jQuery.ajax({ 
       type: "post", url: url, contentType: "text/xml", data: soap, dataType: "xml", processData: false, 
       success: function(doc, status){ 
        console.log("SUCCESS"); 
        var json = jQuery.xml2json(doc); 
        //var account = json.Body.SiebelAccountQueryByIdResponse.SiebelMessage.ListOfAccountInterface.Account; 
        MCRM.Account.accounts = json.Body.Siebel_spcAccount_SiebelAccountQueryByExample_Output.ListOfAccountInterface.Account; 
        success_callback2(MCRM.Account.accounts); 
        //MCRM.screen.account_detail.setValue(account.Name + "<br>" + account.MainPhoneNumber); 
       }, 
       }); 

}; 

답변

0

내 문제는 로 인한 것으로 나타났습니다. preventDefaultLink();

'click'이벤트에 대한 이벤트 리스너가 포함 된 이벤트가 두 번 호출되었습니다. 방금 두 번 붙이면 두 번 이벤트에 영향을 줄 것이라는 것을 알았습니다.

관련 문제