0
$('input[name=boxes], .item_add a ').on('click', function(e) {
  e.preventDefault();
 //do stuff inherent to both 
}

有没有办法在我单击链接时阻止默认滚动操作[.item add a],但仍然保留选中和取消选中复选框的默认操作,而input[name=boxes]不会将这两个分解为单独的 onclick 函数?

4

6 回答 6

6
$('input[name=boxes], .item_add a ').on('click', function(e) {
   this.tagName == 'A' && e.preventDefault();
   //do stuff inherent to both 
}
于 2012-11-26T16:18:12.633 回答
4
$('input[name=boxes], .item_add a ').on('click', function(e) {
     if($(e.target).is('a')) e.preventDefault(); //if it is a link then prevent

     //do stuff inherent to both 
})
于 2012-11-26T16:17:52.273 回答
1

检查目标元素

if($(this).is('.item_add a')) e.preventDefault();
于 2012-11-26T16:17:19.760 回答
1
$('input[name=boxes], .item_add a ').on('click', function(e) {
  if (this.tagName == "A"){
    e.preventDefault();
  }

//do stuff inherent to both 
}
于 2012-11-26T16:18:26.600 回答
0

您可以将其保留在一个函数中,但是在函数内部进行检查?

if(!$(this).is(':checkbox')) {
   e.preventDefault();
   return false;
}
于 2012-11-26T16:17:37.933 回答
0

试试这个:

$('input[name=boxes], .item_add a ').on('click', function(e) {
    if (!$(this).is(':checkbox') {
        e.preventDefault();
    }

    //do stuff inherent to both 
}
于 2012-11-26T16:18:21.490 回答