テーブルの一行をクリックして、その行内にあるチェックボックスへチェックをいれて、背景色に色づけしたいと思っています。
出来る様にはなったのですが、クリックした行の中に"aリンク"が入っており"aリンク"だけは、機能しないようにしたいのです。
●jQuery $('#mcheck tr').click(function() { //tr要素からチェックボックスを探す。 var $check=$(this).children('td').children('input[type=checkbox]'); var $no=$(this).children('td').children('a').data("no"); if($check.prop("checked")) { //■checkboxにチェックがある場合。 $check.prop('checked',false); $checkno=0; $(this).removeClass('checkselect'); }else{ //■checkboxにチェックがない場合。 $check.prop('checked',true); $checkno=1; //クラスの追加 $(this).addClass('checkselect'); } });
セレクターで特定できるのかと思い、
$('#mcheck tr a:not(.newkomoku)').click(function() { ・・・・・
としましたが、うまくいかなかったのでクリックした部分が"aリンク"の時は、returnしようと思いついて
var target=$(e.target); if($(e.target[0])=="a.newkomoku") { return; }
e.targetからどうやって"aリンク"を判別すればよいのか分かりませんでした。
if文以降は、訳が分からず記述しています。
セレクターで特定したほうが良いのか、"aリンク"を判別したほうが良いのでしょうか。
それともそもそもこういった考え方が間違っているのでしょうか。
よろしくお願いします。
html <省略> <table id="mcheck" class="table table-striped table-bordered" cellspacing="0" width="100%"> <thead> <tr> <th>Check</th> <th>実行時</th> <th>項目名</th> <th>実行者</th> <th>内容</th> <th>ファイルパス</th> <th>アプリ</th> <th>提出先</th> <th>IMPATH</th> <th>NO</th> <th>ORDERBY</th> <th>CHECKNO</th> <th>SYAINCD</th> </tr> </thead> <tbody id="sortable"> <tr class="rowtr"> <td class="rank"><input type="checkbox" name="checkno" value="1" class="checkbox-inline"></td> <td class="rank"><a href="monthmanual/mcheckdataupdatedisp/" class="newkomoku">月末</a></td> <td class="rank"><a href="monthmanual/mcheckdataupdatedisp/" class="newkomoku">売上高予算表</a></td> <省略> <script src="./js/jquery-2.2.3.min.js"></script> <script src="./js/jquery-ui.js"></script> <script src="./js/bootstrap.js"></script> <script src="./datatables/js/jquery.dataTables.js"></script> <script src="./datatables/js/dataTables.bootstrap.min.js"></script> <script src="./js/komokuinput/m_checksheet.js"></script> <script src="./js/jquery.magnific-popup.js"></script>
CSS table#mcheck .checkselect { background-color: #A7AB15; font-color: #ffffff; font-weight: bold; }
*DataTablesを使用しています。
よろしくお願いします。
回答3件
あなたの回答
tips
プレビュー