最初の列にチェックボックスがあるテーブルがあります。行のどこかをクリックすると、テーブル行に 'row_selected'というクラスが設定され、チェックボックスがオンになります。コードは以下の通りである:テーブル行の子要素からjqueryクリックイベントハンドラを削除する
$('#my_table > tbody > tr > td').live('click', function() {
if ($(this).parent().hasClass('row_selected')) {
$(this).parent().removeClass('row_selected')
$('td.checkbox input', this.parentNode).prop("checked", false)
} else {
$(this).parent().addClass('row_selected')
$('td.checkbox input', this.parentNode).prop("checked", true)
}
})
問題は、テーブルのセルの一部がクリックされた場合、私は行が選択になることを望んでいないボタンがあります。すなわち
<tr>
<td class="checkbox">
<input type="checkbox" checked="false"/>
</td>
<td>blah<td>
<td>
<a class="myButton">do stuff</a>
</td>
<td>blah<td>
</tr>
myButtonをクリックしたときを除いて、jqueryのクリックイベントが機能するようにします。
誰もがアイデアを持っていますか?
あなたのTD内部リンクを見つけようと、それが見つかった場合、リンクが機能してまいりますので、それはtrueを返します
stopPropagationは、ここで言うように.liveを使用しているので使用しないでください。http://api.jquery.com/event.stopPropagation/ –
例ではクリックは機能しません。 –
@GuilhermeDaviddaCosta - 確かにそうです。最初の一言を数回クリックし、チェックボックスの切り替えを見てください。 – j08691