2

インデックスページに入力があります:

<input type="button" name="goReplaceAll" value="Go" id="allReplaceGo" style="cursor:hand;" />

そしてjqueryからのonclick呼び出し:

$(document).ready(function() {
        $('#allReplaceGo').click(replaceAll);
});
function replaceAll(){ alert('a'); }

ボタンをクリックしても何も起こりません。代わりに、HTML内でonclick = "replaceAll()"を使用すると、エラーが発生します:Uncaught ReferenceError:replaceAll is not defined

これらのエラー間の関係、または考えられる原因を理解できません。

コードは現在http://www.texturepacker.netで公開されています

編集:FirefoxとChromeで2つの異なる結果が得られるようです。ページが読み込まれると、Firefoxアラート(「a」)が表示されている間、Chromeは何もしません。今、私はただ混乱していますか?

編集:私のコードの後半で、無関係の構文エラーが呼び出しを中断していたようです。これで、domがロードされるときにreplaceAll()が呼び出されます。私の質問は、replaceAll()がonclickで起動されないのはなぜですか。代わりに、domがロードされると、明らかな何かが欠落していますか?

4

3 に答える 3

1

ここでは構文エラーのように見えます...

スクリプトファイルの196行目は

$(this).("src",tmpSrc);

それはあるはずです

$(this).attr("src",tmpSrc);

それを修正すれば、すべて問題ないはずです。

7行目も

$('#allReplaceGo').live("click",replaceAll());

あるはずです

$('#allReplaceGo').live("click",replaceAll);

また、バージョン1.7以降、 .live()は非推奨になりました。代わりに.on()を使用してみてください

于 2012-09-28T17:28:08.550 に答える
-2

これはおそらく、replaceAll関数がjQueryスコープの外にあるために発生します。彼女を$(document).readyスコープ内に入れてみてください。

于 2012-09-28T17:22:34.887 に答える
-2

コードは次のようになります

    $(document).ready(function() {
        $('#allReplaceGo').click(function(){
           replaceAll()
        });
    });
    function replaceAll(){ alert('a'); }
于 2012-09-28T17:24:05.963 に答える