簡體   English   中英

將兩個事件處理程序合並為一個(jquery)

[英]Combining two event handlers into one (jquery)

我從兩個事件處理程序中提取了一個函數,但是我想知道事件處理程序本身是否可以組合:

// when to hide/show the Submit link (select is changed)
$('.season select').on('change', function() {
    var TVContainer = $(this).parents('.submission');
    getTVData(TVContainer);
});

// when to hide/show the Submit link (validate on input changed)
$('.season input').on('keyup', function() {
    var TVContainer = $(this).parents('.submission');
    getTVData(TVContainer);
});

您可以將處理程序提取到另一個函數:

function handler () {
    var TVContainer = $(this).parents('.submission');
    getTVData(TVContainer);
}

$('.season select').on('change', handler);

// when to hide/show the Submit link (validate on input changed)
$('.season input').on('keyup', handler);

只需將處理程序設為單獨的函數即可。 為了確保在該function正確使用this ,請使用bind(this)

 function handler() { var TVContainer = $(this).parents('.submission'); getTVData(TVContainer); } // when to hide/show the Submit link (select is changed) $('.season select').on('change', handler.bind(this)); // when to hide/show the Submit link (validate on input changed) $('.season input').on('keyup', handler.bind(this)); 

您可以組合選擇器並組合事件-特別是因為您無法鍵入選擇項。 嘗試一下。您可能要處理從輸入退出后被調用的更改事件。

$('.season select, .season input').on('change keyup', function() {
    alert("change or keyup called");
});

小提琴: http//jsfiddle.net/Lbztf7eh/

暫無
暫無

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

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