0

特定の要素がクリックされたかどうかを確認しようとしていますが、うまくいきません。ここに私のHTMLがあります:

<div id="my_special_id" class="switch switch-small has-switch" data-on="success" data-off="danger">
    <div class="switch-on switch-animate"><input type="checkbox" checked="" class="toggle">
        <span class="switch-left switch-small switch-success">ON</span>
        <label class="switch-small">&nbsp;</label>
        <span class="switch-right switch-small switch-danger">OFF</span>
    </div>
</div>

これが私のjQueryです:

<script type="text/javascript">
$(document).ready(function() {
    $('#my_special_id').click(function() {
        if ($('#my_special_id div:first-child').hasClass('switch-on')) {
            window.alert('ON!');
        }
    });
});
</script>

私のID「my_special_id」は実際にクリックされたものではないと思いますか?

4

5 に答える 5

1

クリックイベントには event パラメータが必要だと思います。

$(document).ready(function() {
    $('#my_special_id').click(function(e) {
        if (e.target check condition) {
            window.alert('ON!');
        }
    });
});

上記のパラメーター 'e' は、クリック イベントに関するすべての情報を含むイベント オブジェクトです。したがって、「e.tartget」の下のすべての情報を確認すると、どれがクリックされたかがわかります。お役に立てば幸いです。乾杯 :)

于 2013-08-13T04:22:48.847 に答える
0

その特定のクラスをクリックしたときにアラートを出すだけですswitch-on

<script type="text/javascript">
     $(document).ready(function() {
         $('#my_special_id div:first-child .switch-on').on('click',function() {
                   window.alert('ON!');
          });
     });
</script>

または、次のように試してください

$(document).ready(function() {
    $('#my_special_id').click(function() {
        if ($(this + 'div:first-child').hasClass('switch-on')) {
            window.alert('ON!');
        }
    });
});
于 2013-08-13T04:26:31.893 に答える