-2
$("#myInputId1").blur(function()

我能怎么做:

#myInputId1, #myInputId2, #myInputId3 -> same blur function

我相信这并不难,但尝试了很多东西并且不能!

4

8 回答 8

3

将相同的 css 类应用于您想要的所有元素。然后使用以下代码

$('.className').blur(function(){
     ....
 });
于 2013-07-22T10:20:19.573 回答
2

尝试这个:

$("#myInputId1, #myInputId2, #myInputId3").blur(function(){
   //your code
});

或其他方式,您可以检查所有以 id 开头的myInputId

$('input[id^=myInputId]').blur(function(){
   //your code
});
于 2013-07-22T10:19:26.533 回答
0

或者您可以在父级上绑定事件:

$(container).on('blur', 'input', function(){
    //do something
})
于 2013-07-22T10:37:44.390 回答
0
$('input[id^="myInputId"]').blur(function() {

});
于 2013-07-22T10:21:48.323 回答
0

请尝试使用以下代码片段。

$('input[id*="myInputId"]').blur(function()
于 2013-07-22T10:22:10.690 回答
0

简单地 -

$('#myInputId1, #myInputId2, #myInputId3').blur(...)

http://api.jquery.com/multiple-selector/

于 2013-07-22T10:19:36.233 回答
0

正如 Api 建议的那样 [jQuery( "selector1, selector2, selectorN" )]

$("#myInputId1, #myInputId2, #myInputId3").blur(function(){


}

http://api.jquery.com/multiple-selector/

于 2013-07-22T10:20:03.020 回答
0

另一种选择是使用委托:

var relevantIDs = ['myInputID1','myInputID2','entirelyDifferentID'];
$('body').on('blur', function (e){
    var self = e.target;
    if (self.id && $.inArray(self.id, relevantIDs) > -1) {
        $(self).plugin();
    }
});

不幸的是,这明确要求元素ids 都在数组中预定义,尽管它允许那些ids 没有特定的模式(显然,属性开始于或结束于选择器的要求)。

出于性能原因,最好选择所有目标元素中最接近的共享祖先元素,而不是 document body

不过,正如其他地方所指出的,虽然有一些解决方法可以允许这种基于多重id的选择,但使用通用属性(例如class.

参考:

于 2013-07-22T10:30:02.760 回答