2017-03-16 85 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(); 
}); 

,改變我的按鈕的目標,文本顯示。測試對象中就好了。

我真的很感激,如果有人能告訴我什麼是錯的。

+0

可能是傳播的問題?你有沒有嘗試過:''(「。card-grid .card」)。trigger(「myEvent」);'在你的第二個方法中? – Sam0

+0

謝謝,工作!但是現在你欠我一個解釋。我以爲我只需要將事件「發送」給我在第一種方法中聲明的一個聽衆?! – lenn121

+0

重新格式化如下... – Sam0

回答

0

你的方法是正確的,但是,$(".card-grid").on("myEvent", '.card', funct...的目標是.card的所有div,它們是.card-grid的子元素。

因此,$(".card-grid .card").trigger("myEvent");爲您的$("#triggerButton").click...函數提供了更好的目標。