结合2个id和高级参数

时间:2013-03-20 19:40:06

标签: jquery

我想将2个调用合并为1,但我不确定是否因为其中一个类对子内容有额外的影响。

$('.abc').children().not(".xyz").click(function() { //stuff     });
$('#myid').click(function() {   //same stuff    });

通常情况下,我只会做$('.abc , #myid')myidxyz子孩子,在这种情况下我不想受影响(与.abc不同),所以我不能把所有的东西都结合起来。

合并这两个的最佳方法是什么,所以我不会重写相同的“东西”功能?

5 个答案:

答案 0 :(得分:1)

您始终可以使用命名函数

function doStuff() { /* stuff */ }

$('.abc').children().not(".xyz").click(doStuff);
$('#myid').click(doStuff);

答案 1 :(得分:1)

如果将其置于一次通话中至关重要,您可以将第一个选择器简化为

$('.abc :not(.xyz)')

这将允许您使用

$('.abc :not(.xyz), #myid')

答案 2 :(得分:0)

你可以试试这个:

function doStuff(){
  // your same stuffs
}

$('.abc').children().not(".xyz").click(doStuff);
$('#myid').click(doStuff);

答案 3 :(得分:0)

您可以尝试:

$('.abc').children().not(".xyz").add('#myid').click(function() {
  // stuff
})

答案 4 :(得分:0)

您仍然可以使用.add方法执行与$('.abc , #myid')类似的操作。

$('.abc').children().not(".xyz").add('#myid').click(function(){ /* stuff*/ });