0

奇怪的标题......我有这个功能:

$('#text').keyup(function() {
    // stuff here
}

在其他事件中,我也会在“这里的东西”中“重用”我的所有代码

$('#previousSms').change(function() {
    // same stuff here
}

有类似的场景(伪代码)

if
 $('#previousSms').change OR $('#text').keyup

不可能?

谢谢!

4

4 回答 4

4

你可以使用on()

$('#text, #previousSms').on('keyup change', function(){
    // do stuff here
});

另一方面,如果您需要根据特定元素上的事件使用相同的函数:

$('selectorForCommonAncestor').on('keyup change', '#text, #previousSms', function(e){
    var eName = e.type,
        elID = this.id;
    if (eName == 'keyup' && elID == 'text') {
        // do stuff for keyup event on #text
    }
    else if (eName == 'change' && elID == 'previousSms') {
        // do stuff for change event on #previousSms
    }
});

参考:

于 2013-09-23T18:29:56.027 回答
1

你当然可以。

function something (event) { /* stuff */ }

$('#text').keyup(something);
$('#previousSms').change(something);
于 2013-09-23T18:28:44.730 回答
1

完美的工作。

$('#text').keyup(doStuff);

$('#previousSms').change(doStuff);

function doStuff(){
//same stuff
}
于 2013-09-23T18:28:51.640 回答
1

定义一个函数并将其用于每个事件:

$('#text').keyup(myFunction);
$('#previousSms').change(myFunction);

function myFunction(e) {
    //do stuff 
}
于 2013-09-23T18:27:59.700 回答