2013-05-06 5 views
1

저는 아주 JS와 JQuery에 새로운 것이므로 나와 함께하시기 바랍니다.클릭 이벤트에서 함수 제거

드롭 다운 목록이 있습니다. 목록을 클릭하면 함수가 호출되어 부동 상자 (div)가 열립니다. 이제 우리는 상자가 클릭 이벤트와의 관계를 끊고 로그인 할 때 표시되도록하려고합니다. 그러나 함수에서 코드를 가져 와서 스크립트에 배치하면 다른 div처럼 내 페이지 렌더링이 잘못되거나 아무것도 표시되지 않습니다. 여기

내 HTML에있는 것입니다 :

<li><input class="option_btn room_search" value="Search for Room"/></li> 

을 여기에 내 스크립트 모습입니다 같은 :

$("input.room_search").click(function() { 
    //var roomSearch = new jabberwerx.ui.MUCSearchView(muc, demo_config.conferencealias); 

    var roomSearch = new jabberwerx.ui.MUCSearchView(muc, conferencealias); 

    roomSearch.event("actionComplete").bind(function(evt) { 
     try { 
      try this... 

     } catch (e) { 
      alert("An exception occurred while trying to create/join the MUC room.\n Details: " + 
        e.message); 
     } 
     roomSearch.destroy(); 
    }); 
    roomSearch.render().appendTo(".muc_search"); 
    roomSearch.dimensions({width:600, height:400});     
}); 

제발 도와주세요, 나는 그의 우려와 함께 포럼을 찾기 위해 시도했지만 나는 정확한 키워드를 가지고 있다고 생각하지 않는다. 고맙습니다!

+0

클릭 핸들러에서 코드를 제거하면 이것을 $ (document) .ready (function() {{* 여기에 코드 * *}); 코드는''.muc_search ''요소에 추가하려고하므로, 그 요소가 파싱 된 후에 실행해야합니다. – nnnnnn

+0

예, click 이벤트가있는 원래 코드가 핸들러 내부에도 있지만 핸들러 내부에 있습니다. "귀하의 코드는".muc_search "요소에 추가하려고 시도합니다. ".muc_search"를 "div.muc_search"로 변경하고 페이지를 올바르게 렌더링했습니다. 그래도 기본적으로 플로팅 상자를 표시하지 않았습니다. 한편, 로그인 할 때 클릭 이벤트를 강제로 실행할 수 있다는 것을 발견 했으므로이 작업을 사용할 수 있습니다. $ ("input.room_search"). trigger ('click'); –

답변

0

내가 완전히 질문을받을 해달라고하지만, 질문을보고, 클릭 이벤트가 쉽게 때어 functon 내부

$('#mySelectr').unbind('click'); 

에 의해 바인딩을 해제하면 바인딩을 해제하려는 이벤트의 이름을 부여 할 수 있습니다.

관련 문제