我有两个选择器,我希望在一段代码中组合以处理两个不同的选择器。
我目前的代码如下:
var button_b=$("#button_b");
$('#button_a', button_b).on("click, dblclick", function(){
//do stuff
});
但这似乎不起作用。
答案 0 :(得分: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());
});
从代码中可以清楚地看到,我希望绑定相同的函数来单击textField keydown
上的按钮和#voucher_id
,但是通过使用上面提到的方法,正在发生的事情是显而易见的。我在按钮上的keydown
上激活了相同的功能,这是不可取的行为。
如何避免这种情况,并仍然将两个选定的代码组合在一起。
答案 1 :(得分:0)
组合选择器(as mentioned by @mike)很简单,可以将选择器值$("#button_a,#button_b")
分开。事件可以用空格分隔 -
var selector = '#bar';
$("#foo,"+selector).on("click dblclick", handler);
这两个事件很难捕捉到同一个元素。双击的第一次单击将被拾取并调用处理程序,在单击单击调用处理程序之前,您将无法双击。
我的实时演示使用相同的技术,但有mouseenter
和click
个事件。
答案 2 :(得分:0)
如果是这样的话,为什么不这样做,你有这些元素的相同处理程序和不同事件..
$("#button_a").on("click", function(){
myFunc(this);
});
$("button_b").on("dblclick", function(){
myFunc(this);
});
function myFunc(elem){
// Your code here
}