簡體   English   中英

如何以兩種不同的方式調用同一函數?

[英]How to call the same function in two different ways?

我正在嘗試在以下情況下組合一個顯示警報的功能(當然,在此功能中我有很多代碼,但在這種情況下,它將是警報的)

  1. Click類為.number元素
  2. Change select[name=receive]

我有此代碼,但它不起作用:

$(document).on(("click",".number"),("change","select[name=receive]"),function(){
    alert('test');
})

嘗試這個

$(document).on("click change","select[name=receive], .number", function(){
    alert('test');
});

要么

var fn = function () {
   alert('test');
}

$(document).on("click", ".number", fn);
$(document).on("change", "select[name=receive]", fn); 

嘗試這個

function doMyWork() {
    console.lot( 'TEST' );
}
$('.number').on('click', doMyWork);
$('select[name=receive]').on('change', doMyWork);

或者,如果在DOM准備就緒后插入了元素: 如果目標元素在DOM ready存在,則不必使用此表單

function doMyWork() {
    console.lot( 'TEST' );
}
$(document).on('click', '.number', doMyWork)
.on('change', 'select[name=receive]', doMyWork);

您不能在單個.on()調用中分隔事件和選擇器。 您在這里有兩個選擇。 您可以一起使用它們。

$(document).on("click change", ".number, select[name=receive]"),function(){
    alert('test');
});

...但是,這意味着.nu​​mber將同時監聽點擊和更改,可能導致該函數運行兩次。

您需要將函數移到外部並為每個處理程序重用

var al = function(){
    alert('test');
};

$('.number').on('click', al);
$('select[name=receive]').on('change', al);
$(document).on("click change",".number, select[name=receive]", function(){
    alert('test');
})

我不確定您從哪里學到的語法,但是那不是on()的工作原理。

使用命名函數並共享它。

(function(){

   var shared = function(){
       console.log(this); 
   }

   $(document)
       .on("click",".number", shared)
       .on("change","select[name=receive]", shared);  

}());

暫無
暫無

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

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