2016-09-30 7 views
0

콧수염 JS 템플릿을 통해 함수에서 생성 된 버튼이 있습니다. 클릭 이벤트/바인드 이벤트가 jQuery에서 작동하지 않습니다. Mustache JS에서 버튼을 생성 할 때

{{#attributes}} 
    <a class="button--small btn" data-selector="{{selector}}">{{title}}</a> 
{{/attributes}} 

그의 샘플 출력은 그러나

<a class="button--small btn" data-selector=".news">More News</a> 

이다, 나는이 버튼을 클릭 만에 상관없이 내가 .click(function() { }); 또는 .bind 사용 여부가 보이지 않을 때 다른 jquery 기능을 실행하는 것을 시도하고있다 일하다? console.log조차도 인쇄되지 않으므로 올바른 조건에 부합하지 못합니다. 내용은 "직접 위임 이벤트"섹션 : 당신이 event을 위임 할 필요가 새로 만든 요소에 대한

function lazyload(selector) { 
    $("a[data-selector^='"+selector+"']").bind("click", function(e) { 
      e.preventDefault(); 
      loadNews(selector); 
    }); 
} 

$(document).ready(function(){ 
    lazyload(".news"); // CALL FUNCTION READY FOR USAGE 
}); 
+0

단순히 "뉴스"를 데이터가 아닌 클래스로 만드는 것이 더 쉽습니다. 그런 다음'$ (". news") ...'등을 할 수 있습니다. 또한'.bind'는 더 이상 사용되지 않으므로 대신'.on'을 사용해야합니다 (동일한 메소드 서명). 마지막으로, ''요소가 페이지로드시 또는 나중에로드됩니까? 나중에있을 경우 위임 된 이벤트를 지원하는'.on' 버전을 사용해야합니다 (jQuery 문서 참조). http://api.jquery.com/on/ – ADyson

답변

2

: 여기

는 스크립트입니다.

function lazyload(selector) { 
    $(document).on("click", "a[data-selector^='"+selector+"']", function(e) { 
     e.preventDefault(); 
     loadNews(selector); 
    }); 
} 
+1

Brilliant - 받아 들일 수있을 때까지 1 분 고마워. – WebDevDanno

+0

당신은 내 하루를 보냈습니다 !!!! :) 고마워요 !!! –