0

<li>メニューの一部としてチェックボックスがあります。ラッピング項目には、チェックボックスを切り替えるクリック ハンドラーがあります (メニュー全体の感覚と一致させるため)。問題は、ユーザーがチェックボックスを直接クリックすると、デフォルトのトグルが実行され、外部ハンドラーもそれをトグルすることです。この二重トグルを防ぐにはどうすればよいですか?

<li onclick='/*toggle checkbox*/'><input type='checkbox'/>...</li>

試してみましdisabledたが、レンダリングが変更されます。これは望ましくありません。

そこに役立つ機能がある場合に備えて、jqueryを使用しています。

4

2 に答える 2

1

この関数を使用して.stopPropagation()、クリックが DOM ツリーに伝播するのを防ぐことができます。

これが例です

$(document).ready(function () {
    $("input[type=checkbox]").click(function (evt) {
        evt.stopPropagation();
        $("#thetext").html("checbox clicked");
    });

    $("li").click(function () {
        $("#thetext").html("li clicked");
    });
});

html

<ul>
    <li>
        <input type='checkbox' />
    </li>
</ul>
<div id="thetext">hm</div>
于 2013-06-27T11:00:16.267 に答える