2015-07-13 2 views
0

. Вопрос: как сделать родительский щелчок с помощью jQuery, но исключить некоторые дочерние элементы (например, галочку или гиперссылку)? И в то же время я хочу, чтобы дочерние элементы были нажаты сами (например: гиперссылка должна работать?jQuery: выделение целых строк таблицы, за исключением тех случаев, когда нажаты определенные дочерние элементы.

Чтобы уточнить, когда нажата строка внутри таблицы, я хочу, чтобы она добавила проверенный класс в строке, чтобы выделить его.

у меня есть флажок в пределах каждой строки, которая переключает проверяемый класс уже. Так что я планирую использовать trigger(), чтобы этот флажок, когда строка щелкнул. Вы увидите в моем JSFiddle example.

Проблема, с которой я столкнулась, заключается в том, что они нажимают флажок или гиперссылку внутри строки, я не хочу, чтобы она вызывала щелчок.

Я надеялся, что использование селектора, такого как $('td :not(a,input)'), будет работать, но, очевидно, я не понимаю, как правильно щелкнуть дочерние элементы, так как это не работает.

В моей же JSFiddle example вы заметите в примере по умолчанию, если вы установите флажок

Я просмотре веб-страниц для ответа, но никто, кажется, делает именно то, что я пытаюсь достичь ,

ответ

1

Вы могли бы заменить это:

$('td :not(a,button,.custom-checkbox)').on('click', function() { 
    $(this).closest('tr').find('input').trigger('click'); 
}); 

Для этого

$('td').on('click', function(e) { 
    var $target = $(e.target); //This will get the element that is actually being clicked  
    if (!$target.is("a,button,.custom-checkbox, [type=checkbox]")) { 
    //If the element being clicked doesn't belong to the group of the "unclickable" elements 
    //I also added checkboxes to the "unclickable" elements 
    $(this).closest('tr').find('input').trigger('click'); 
    } 
}); 
Смежные вопросы