簡體   English   中英

jQuery觸發器()與自定義事件?

[英]jQuery trigger() with Custom Event?

我正在使用一些代碼(由其他人編寫),如下所示:

var _layoutRoot = $("#whatever");

eventName = 'CopyArticle';
eventData = { targetArticleIds: selectedArticleIds, targetCategoryIds: selectedCategoryIds };

// fire the event
if (eventName) // null is unexepcted here
    _layoutRoot.trigger(eventName, eventData);

我只是不清楚這意味着什么。

我可以看到trigger導致命名事件發生。 但是,什么時候有一個JavaScript CopyArticle事件? 這是一個有效的事件,它將如何處理?

jQuery允許您觸發任何名稱的事件

$(".foo").on("some:custom:event", function(event) {
  console.log("hello");
});

$(".foo").trigger("some:custom:event");

// hello

只需將自定義事件附加到on的元素即可。 要觸發事件,請使用trigger 您可以使用數組將額外參數傳遞給觸發器函數。

HTML

<div id="test"></div>

JS

$("#test").on("customEvent", function(e,msg){
  alert(msg);
});
var dataToPass = "This is a msg";
$("#test").trigger("customEvent", [dataToPass]);

JS小提琴: http //jsfiddle.net/85wjt/1/

根據jquery 網站

當我們使用.on()方法定義自定義事件類型時,.trigger()的第二個參數可能會變得有用。 例如,假設我們已將自定義事件的處理程序綁定到我們的元素而不是上面的內置click事件:

$( "#foo" ).on( "custom", function( event, param1, param2 ) {
  alert( param1 + "\n" + param2 );
});
$( "#foo").trigger( "custom", [ "Custom", "Event" ] );

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM