2

addClass でクラスを追加しました。その追加されたクラスの onclick 関数があります。ただし、jQuery は、そのクラス用に作成したクリック関数を無視します。

ここでJSFIDDLEでテストしました

 <style type="text/css">
 .openInfo:hover{color:red}
 .closeInfo:hover{color:blue}
 </style>

 <div class="openInfo">OPEN</div>

<script>
$('.openInfo') //executes correctly
    .click(function() {
        $(this).text("CLOSE");
        $(this).addClass('closeInfo');
        $(this).removeClass('openInfo');
});

$('.closeInfo') //ignored
    .click(function() {
        $(this).text("OPEN");
        $(this).addClass('openInfo');
        $(this).removeClass('closeInfo');
});
</script>

余談ですが、何らかの理由で、1.5.2 を使用すると、どのコードも jsfiddle で機能しませんか?! それはjsfiddleのバグですよね?少なくとも、私のテスト サーバーでは 1.5.2 で同じ結果が得られます。

4

1 に答える 1

4

このクラスは動的に追加されるため、クリックするのではなくライブにする必要があります。


$('.closeInfo') //ignored
    .live("click", function() {
        $(this).text("OPEN");
        $(this).addClass('openInfo');
        $(this).removeClass('closeInfo');
});

于 2011-04-23T15:00:23.320 に答える