これは非常に単純なようですが、それでも正しく機能しません。
クラス.normalを.hightlight..の上に置くと機能しますが、ここではスタイルを変更しません。位置のみを変更します。これは意味がありません。
ここにhtmlコードを貼り付けることができないようですので、ブロック単位で貼り付ける必要があります。そして、すべてのコードのスナップショットを同封しました。
空のhtmlページがあることを確認してください。Doctypeは重要ではありません。さまざまなDoctypeでテストしましたが、それでも正しく機能しません。
これは、ヘッダーの後のスタイルブロックの内側にあります
.highlight { color:black; background-color:yellow; }
.normal { color:white; background-color: blue; }
この後、最新のjqueryコードのソースを含むスクリプトタグがあります http://code.jquery.com/jquery-latest.min.js
そして、この後、スクリプトがブロックされ、ここに次のようになります。
$(document).ready(function () {
$('#maindiv').css('cursor', 'pointer');
$('#maindiv').click(function () {
//alert("click");
// $(this).toggleClass("highlight"); //this does not work!
// $(this).addClass('highlight'); //this does not work!
// $(this).attr("class", "highlight"); //this works
// $(this).css("background", "yellow"); this works
// the javascript way to do this works also fine.
// var element = document.getElementById('maindiv');
// element.setAttribute("class", "highlight");
});
});
そして、本体の内部に、ID名が「maindiv」でクラスが「normal」のapタグがあります。
テキスト付きはこちらをクリックしてください。
桶、私も誰かがこれを試すまで待つことができません..他のすべての方法がうまくいくので、それはクレイジーです。ただし、.addClassと.toggleClassのみが正しく機能しません
私は新しいユーザーなので、ここに完全なコードのスナップショットを含めることはできませんが、 http ://www.bckan.nl/temp/jquerybug.jpgからダウンロードできます。