簡體   English   中英

jquery.trigger什么時候觸發

[英]When does jquery.trigger fire

我已經閱讀了.trigger()文檔http://api.jquery.com/trigger/ 但是仍然不確定這個小提琴是如何工作的。 鏈接: https//jsfiddle.net/LanceShi/s7pm43f3/2/

HTML:

<input id="theInput"/>

Java腳本

$(document).ready(function() {
    $("#theInput").trigger("input");
});


$("#theInput").on("input", function() {
    alert("Here");
});

現在,在每個鍵入/粘貼事件上都會觸發輸入事件。 但是,我在.trigger()文檔中沒有看到任何提及此內容的信息。 這是如何運作的?

它不會觸發該操作。 您的觸發器僅被觸發一次。

原因是input事件包含許多其他事件,例如按鍵,更改,粘貼和其他一些事件。

正如其他人所指出的,您需要在添加監聽器之前更正調用觸發器的順序

您需要先register事件,然后才能invoke 由於您已聲明DOM事件(未注冊為jquery事件的事件),因此需要使用函數trigger() 對於jquery中預定義的內容(例如clickchange ),您可以直接調用它們而無需使用trigger

$(document).ready(function() {

  $("#theInput").on("input", function() {
    alert("Here");
  });

    $("#theInput").trigger("input");
});

范例: https : //jsfiddle.net/DinoMyte/s7pm43f3/3/

在您的代碼中, .trigger()沒有任何作用,因為您的trigger()將在附加input事件之前trigger()

所以你的代碼應該像這樣

$(document).ready(function() {
  $("#theInput").on("input", function() {
    alert("Here");
  }).trigger('input');
});

小提琴

這里的解釋

正如您在jQuery文檔中閱讀的那樣,Trigger函數執行一個自定義事件,很好地看到這里已執行

$("#theInput").trigger("input");

在這里添加了hanlder

$("#theInput").on("input", function() {
    alert("Here");
});

包括您所說的內容,當您在input元素中編寫內容時,將運行函數中的內容

function() {
    alert("Here");
}

起初這令人困惑,因為乍一看不知道會發生什么。 通過將處理程序添加到#theInput,您將向事件類型“ input”添加一個偵聽器。在JavaScript中,存在一個類型為“ input”的事件,它適用於元素“ input”和“ textarea”,並且在其值更改時執行或者換句話說,當我們寫關於它們的時候。 因此,實際上這段代碼在做什么。 將事件類型為“ input”的偵聽器添加到#theInput。 如果需要更多信息,可以閱讀以下內容: https : //developer.mozilla.org/zh-CN/docs/Web/Events/input

暫無
暫無

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

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