2016-06-01 2 views
0

У меня есть таблица HTML. В теге td есть флажок. Если я нажму на этот флажок, он будет проверен или снят как обычно. Но я хочу, чтобы, если я щелкнул где-нибудь на этом конкретном td, то флажок также будет проверен или снят. Потому что, если в нем много строк и флажков, вам может быть трудно точно поместить указатель мыши над флажком и нажать на кнопку (флажки маленькие, поэтому усложнить это нормально). Поэтому я хочу, чтобы это было легко для моего клиента, если он нажимает клик вне флажка, но внутри родительского тега td, то он также будет работать.click event on td не работает

Мой код JQuery работает очень хорошо. Теперь, если я выхожу за пределы флажка, то запускается его событие click. Но проблема в том, что теперь, когда я нажимаю именно этот флажок, он не работает. Я даю свой код ниже. Здесь также находится jsfiddle link of my code.

<div class='modal-inner-content'> 
    <table style="border: 1px solid black;"> 
    <tr> 
     <td class='check'><input type='checkbox'/></td> 
    </tr> 
    </table> 
</div> 

Мой JQuery код:

$('.modal-inner-content').on('click', 'td', function(){ 
    var checked = $(this).find(':checkbox').is(':checked'); 
    $(this).find(':checkbox').prop('checked', !checked); 
}); 

UPDATE
Теперь jsfiddle код будет работать, я забыл включить библиотеку. Теперь см. Там, если вы нажмете на флажок, но он работает, но если вы нажмете именно этот флажок, то он не будет работать. любая помощь?

+0

его работа, если я нажимаю вне флажка. я это то, чего я хотел. но теперь, если я нажимаю именно этот флажок, он не работает. я этого не хотел :) –

+0

oh..okay теперь я понимаю –

ответ

3

Попробуйте это:

$('.modal-inner-content td').click(function (event) { 
     if (!$(event.target).is('input')) { 
      $('input:checkbox', this).prop('checked', function (i, value) { 
      return !value; 
      }); 
     } 
    }); 
+0

его работая теперь спасибо. но не могли бы вы объяснить, почему он сейчас работает и почему он не работал раньше? –

+0

Причина была, когда вы нажимали на флажок, я сам проверял, всегда возвращал true ans, поэтому он не проверял флажок –

+0

. Да, но событие будет срабатывать только в том случае, если 'td' под' modal-inner-content' div. Так что флажок возвращается, когда я нажимаю внутри него, это не имеет значения? Я имею в виду, что триггер предназначен для этого конкретного 'td' не для этого флажка. –

2

в вашем jsfiddle просто добавить Jquery ресурс

https://code.jquery.com/jquery-2.2.4.js

+0

, что было плохой опечаткой –

+0

извините, что я забыл добавить библиотеку , но это не проблема. теперь я добавил библиотеку, но она все еще не работает. –

+0

@ TilakMadichetti да, это был ха-ха .... мозг не работал ... но я исправил его. – Seabizkit

3

Вы можете сделать это путем проверки Clicked элемент является флажок или не нравится следующее.

$('.modal-inner-content').on('click', 'td', function (e) { 
 
    if (!$(e.target).is(':checkbox')) { 
 
     var checked = $(this).find(':checkbox').is(':checked'); 
 
     $(this).find(':checkbox').prop('checked', !checked); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class='modal-inner-content'> 
 
    <table style="border: 1px solid black;"> 
 
     <tr> 
 
      <td class='check'> 
 
       <input type='checkbox' /> 
 
      </td> 
 
     </tr> 
 
    </table> 
 
</div>

0
$('.modal-inner-content').on('click', 'check', function() { 
    var checked = $(this).find(':checkbox').is(':checked'); 
    $(this).find(':checkbox').prop('checked', !checked); 
}); 
+0

Не могли бы вы подробнее рассказать о своем ответе, добавив немного подробного описания вашего решения? – abarisone

+0

Хотя этот фрагмент кода может решить вопрос, [включая объяснение] (https://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers) действительно помогает улучшить качество вашего сообщения.Помните, что вы отвечаете на вопрос читателей в будущем, и эти люди могут не знать причин вашего предложения кода. Также попробуйте не толковать код с пояснительными комментариями, что уменьшает читаемость кода и объяснений! –