jQuery为preventDefault选择元素

时间:2012-11-26 16:15:55

标签: jquery html

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

当我点击链接[.item add a]时,是否有办法阻止默认的滚动操作,但仍然保持默认操作,即检查并取消选中复选框input[name=boxes],而不会将这两个分成单独的onclick功能

6 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分: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 
})

答案 2 :(得分:1)

检查目标元素

if($(this).is('.item_add a')) e.preventDefault();

答案 3 :(得分:1)

$('input[name=boxes], .item_add a ').on('click', function(e) {
  if (this.tagName == "A"){
    e.preventDefault();
  }

//do stuff inherent to both 
}

答案 4 :(得分:0)

你可以将它保存在一个函数中,但是在函数内部进行检查吗?

if(!$(this).is(':checkbox')) {
   e.preventDefault();
   return false;
}

答案 5 :(得分:0)

试试这个:

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

    //do stuff inherent to both 
}