1

ここにjQueryコードがあります:

jQuery(document).ready(function () {
    $("td").click(function (e) {
        var chk = $(this).closest("tr").find("input:checkbox").get(0);

        if (e.target != chk) {
            chk.checked = !chk.checked;
        }

        if ($(this).closest("tr").find("input:checkbox").is(":checked")) {
            $(this).closest("tr").css("font-weight", "bold");
        } else {
            $(this).closest("tr").css("font-weight", "");
        }
    });
});

ご覧のとおり、私にはたくさんのチェックボックスがあり、チェックされているものをクリックしtdてcssを追加します。

正常に動作します。私が欲しいのは、同じ形で私もたくさんのselect箱を持っています。
関数が機能するものを選択しようとすると。
チェックボックスを有効にしないことを選択したいので、選択ボックスをクリックして機能を無効にしたい。

4

2 に答える 2

1

ターゲットがselectであるか、optionsのようなselect要素内の何かであるかを確認するだけです。

$(function () {
    $("td").on('click', function (e) {
        if (! $(e.target).closest('select').length ) {
           var tr  = $(this).closest("tr"),
               chk = tr.find("input[type='checkbox']").get(0);
           if (e.target != chk) {
               chk.checked = !chk.checked;
           }
           if ( tr.find("input[type='checkbox']").is(":checked")) {
               tr.css("font-weight", "bold");
           } else {
               tr.css("font-weight", "");
           }
        }
    });
});
于 2013-03-21T23:17:57.473 に答える
0

私が正しく理解していれば、マウスが何をクリックしたかをテストしたいと思います。それがだった場合は、チェックボックスを変更しないでください。

イベントのプロパティからそれを取得できるはずです。例えば:

if (!$('#' + e.target.id).hasClass('mySelectBox')){
  //your code...
}

もっと簡潔な方法があるかもしれません、私はテストしていませんが、これを試してください:

if (e.target != 'select'){
  //your code..
}

更新:ええ、@ adeneoが言ったことです!

于 2013-03-21T23:50:25.607 に答える