2

HTML スニペットが与えられた場合

<img id="progress" src="http://ajaxify.com/run/sum/progress/progress.gif" class="notWaiting"/>

従来の JavaScript の方法で、コードは機能しています。

function submitWord() {
    // Show progress indicator and clear existing results
    $("progress").classname="waiting";

しかし、jquery の方法では、以下のコードは機能しません。

function submitWord() {

 // Show progress indicator and clear existing results
  $("#progress").toggleClass("notWaiting waiting");

また、私は試してみaddClassましたが、次のようなことさえしました

$("#progress").removeClass().addClass("waiting");

デフォルトのクラスが最初に削除されていることを確認するだけですが、どちらも役に立ちません。

更新:これが JSfiddle バージョンです。 http://jsfiddle.net/EVbh2/1/

更新 2:
上記の問題は、私が JQuery ファイル自体を参照していないことでした。しかし、まだコードの問題に直面しています。すべてのコードをjqueryに変換しようとしましたが、うまくいきません。ここに新しいFIDDLEがあります。

4

3 に答える 3

2

これは機能します:

$("#progress").removeClass("notWaiting").addClass("waiting");

これも機能しますが、他のすべてのクラスが消去され、唯一のクラスが「待機中」になります。

$("#progress").attr("class","waiting");

これも機能し、おそらく最も簡単です。

$("#progress").toggleClass("notWaiting waiting");

アップデート

フィドルを見た後、実際の問題は、「単語」のセレクターに # を入れるのを忘れたことです。また、jquery と同等のものを使用するように keyup 関数を変更しました。

これは機能します:

http://jsfiddle.net/wuXL2/3/

于 2012-05-23T20:10:21.893 に答える
0

問題は chrome にあります。IE では完全に動作します。

于 2012-05-26T17:12:59.410 に答える
0

あなたの jsFiddle デモは正しい jQuery コードではありません。jQuery では、$は DOM 要素ではなく、jQuery オブジェクトを返します。このため、プロパティを同じ方法で設定することはできません。したがって、これを行うことはできません:

$("word").onkeyup = function(){
};

keyupメソッドを呼び出す必要があります。

$('#word').keyup(function(){  // Note the '#'
});

また:

$("results").innerHTML = "";

次のようにする必要があります。

$("#results").html("");  // Note the '#'

クラスチェンジに関しては、

$("#progress").toggleClass("notWaiting waiting");

これは正しく、jQuery で 100% 機能します。うまくいかない場合は、他の何かが間違っています (不適切な jQuery コードや、jsFiddle で MooTools が選択されているなど)。

固定デモ: http://jsfiddle.net/EVbh2/3/

于 2012-05-23T20:26:26.570 に答える