簡體   English   中英

在元素加載之前,如何使用類或ID選擇器使用JQuery定義事件?

[英]How to define events with JQuery using class or ids selectors before element has been loaded?

眾所周知,一旦元素被加載,就可以通過使用普通的JQuery事件將事件附加到該元素上。

問題是,如果我想創建一個特定事件並定義一個具有特定類或ID的元素,將在加載事件時自動獲取該事件怎么辦?

例如:

我有一個檢查輸入的輸入是否僅是數字的函數,並且只允許在輸入內部輸入數字。

為此,我將類“ numeric”添加到輸入元素。

通常,我會在使用JQuery之后立即運行腳本,或者僅通過使用onkeypressed DOM事件將功能附加到腳本上來運行腳本。

但是,假設我有一個ajax請求,該請求附加了一個新的from頁面,並且在適當的輸入元素中包含了數字類。

使用相同的類選擇器再次使用該腳本將導致事件針對先前加載的元素運行2次。並且每次我運行該腳本時,都會一遍又一遍地添加該事件...

我現在要做的是先使用“解除綁定”,然后將事件重新附加到所有元素,並且它運行良好! 但是我正在尋找更優雅的解決方案。

有什么建議么?

您需要在事件委托中使用.on

句法

$(parent-selector).on(event,target-selector,callback);

注意: parent-selector必須是綁定事件時DOM中存在的parent元素,通常人們使用documentbody ,但是為了性能起見,您必須擁有最接近目標的父元素

$(document).on("click",".button",function(){
    alert("Button Clicked");
});

使用on函數可以為不存在的元素附加事件處理程序。

$(document).on("keypress", ".numeric", function(){
   //do something
});

JS小提琴: http //jsfiddle.net/T34Ph/

暫無
暫無

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

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