0

我有两个选择器,我希望将它们组合在一段代码中来处理两个不同的选择器。

我目前的代码如下:

var button_b=$("#button_b");
$('#button_a', button_b).on("click, dblclick", function(){
//do stuff
});

然而,这似乎不起作用。

4

3 回答 3

1

我仍在寻找一种方法来提及 2 个单独的选择器并在一行代码中将它们与单独的事件绑定

考虑以下情况

$('input:text#voucher_id, button.nav').bind('click keydown', function(e){ // find nav functions to keydown events on #voucher_id and nav buttons
    reload(e,'<?php echo $aVeryLongUrlDynamicallyGenerated; ?>', $('#voucher_id').val(),$('#doctype').val());
});

从代码中可以清楚地看出,我想将相同的功能绑定到单击按钮和keydowntextField #voucher_id,但是通过使用上述方法,发生的事情很明显,我keydown在按钮上激活了相同的功能,即不可取的行为。

如何避免这种情况并仍然结合两个选定的代码。

于 2012-11-15T07:33:15.857 回答
0

组合选择器(如@mike 所述)是一个简单的逗号分隔选择器值的问题$("#button_a,#button_b")。事件可以用空格分隔 -

var selector = '#bar';
$("#foo,"+selector).on("click dblclick", handler);

这两个事件很难抓住同一个元素。双击的第一次单击将被拾取并调用处理程序,在为单击调用处理程序之前,您将无法挤压双击。

我在这里的现场演示使用了相同的技术,但使用了 amouseenterclick事件。

演示

于 2012-11-02T06:42:42.873 回答
0

如果是这种情况,为什么不为这些元素使用相同的处理程序和不同的事件..

$("#button_a").on("click", function(){
     myFunc(this);
});

$("button_b").on("dblclick", function(){
     myFunc(this);
});

function myFunc(elem){
    // Your code here
}
于 2012-11-02T08:25:09.527 回答