1

これを聞いて本当に申し訳ありませんが、(私が知っていて理解している)すべてを試しましたが、これを機能させることができません。

$("nav > ul > li").hover(function () {
    var underground = $(this).attr('title');
    $("#womble").html(underground);
},function () {
    $("#womble").html(overground);
});

これは、Jquery1.7.2 が呼び出された後に呼び出される外部スクリプト ファイルにあります。私はそれを関数に入れて、HTML DOM onmouseover イベント ハンドラを介して呼び出すのが嫌いです。

$(this)内で、そのように変数を定義できないということfunction(){}ですか?それとも、これは正しく、他の理由でトリガーされていないだけですか?

変数「overground」は、他の場所でグローバルに定義されています。はい、html<li>タグにはある場合"title="とない場合"Title="があるので、それもチェックしました...単純で明白なものであると確信しています。私の無知および/または愚かさについて、改めてお詫び申し上げます。

HTML は次のとおりです。

<nav>
<ul>
<li title="Wombling free"><a></a></li>
<li title="the wombles of"><a></a></li>
<li title="Wimbledon Common"></li>
<li title="are we"></li>
</ul>
</nav>

$(document).ready 関数に何十回もコードを入れようとしましたが、今はうまくいきます! ... すべての提案に感謝します。イベントハンドラーについてはよくわかっていないので、違いはないと思っていました。コードはホバー イベントによってのみトリガーされると考えていました。しかし、jquery が何らかの形で関連する要素に登録できるように、それは document.ready に含まれている必要があります。ドキュメントレディ関数にコードを入れてみましたが。

現在は機能していますが、実際には、以前と現在の試行の違い/間違いがわかりません! 私はそれをすべて関数に入れ、document.ready 関数に入れました。ドキュメントの最後に軽微な構文エラーがあったに違いありません。準備ができているセクション、またはコードを数十回直前に挿入しようとしたようなもの。信じられないほど迅速な対応に感謝します。1970 年代からウィンブルドン コモンでゴミ拾いをしていた、おしゃべりクマについての子供向け番組でした。はい、私はその年です。おそらく私がとてもぼんやりしている理由。

4

2 に答える 2

0

次の行を外部スクリプト ファイルに挿入します。

console.log($("nav > ul > li").length); // should log a number > 0
console.log($("#womble").length);       // should log a number > 0
console.log(overground);                // should log a defined value
// just before the problem function
$("nav > ul > li").hover(function () {
    var underground = $(this).attr('title');
    $("#womble").html(underground);
},function () {
    $("#womble").html(overground);
});

ブラウザのコンソールを確認してください。出力は期待どおりですか?

于 2013-06-07T20:00:24.843 に答える