2017-03-16 3 views
1

지금까지 jQuery 문제가 발생하여 여러 시간이 걸렸으며 정확히 무엇이 잘못 될지 알 수 없습니다. 짧은 이야기 - 내 코드는 Play Framework로 작성된 메모리 게임의 일부입니다.jQuery : 사용자 지정 이벤트가 실행되지 않습니다.

jQuery를 파일 (간체) :

$(document).ready(function() { 
    $(".card-grid").on("myEvent", '.card', function (event) { 
     $(".card-grid").flip({ 
      trigger: 'click' 
     }); 
    }); 
    $("#triggerButton").click(function() { 
     $(".card-grid").trigger("myEvent"); 
    }); 
}); 

설명 : 메모리 "카드는"다른 (작업) jQuery 코드를 사용하여 초기 로딩 후 페이지에로드됩니다. 하나의 .card div는 각각 하나의 .card-grid div에로드됩니다. jQuery-flip 플러그인이 작동하도록 flip 메서드를 실행해야합니다. jQuery 버전은 2.1.4입니다 (플립은 최신 버전에서 실행되지 않습니다).

첫 번째 방법으로 myEvent을 예를 들어 click으로 바꾸면 카드 중 하나를 클릭하기 만하면됩니다. 내가 다른 기능을 작성하는 경우

$(".test").on("myEvent", function (events) { 
    $(this).text("Testtext").show(); 
}); 

말을 내 버튼의 대상을 변경할 수 있습니다, 텍스트는 .test 객체 내부에 잘 보여줍니다.

아무도 나에게 무엇이 잘못되었는지 말할 수 있다면 정말 고맙겠습니다.

+0

은 전파 문제 일 수 있습니까? '$ (".card-grid .card"). trigger ("myEvent");'두 번째 방법은? – Sam0

+0

감사합니다. 하지만 지금 너는 내게 빚진 설명을하고있다. 첫 번째 방법으로 선언 한 청취자에게 이벤트를 보내야한다고 생각했습니다. – lenn121

+0

아래에 다시 포맷 됨 ... – Sam0

답변

0

당신의 접근 방식은, 그러나, $(".card-grid").on("myEvent", '.card', funct... 목표는 모든 div의는 .card-grid의 자식 요소 .card 올바른이라고합니다.

따라서 $(".card-grid .card").trigger("myEvent");$("#triggerButton").click... 함수의 더 나은 대상을 만듭니다.