2

私はJSとjQueryにかなり慣れていないので、jQueryでいくつかのことを試すために、基本的なJSを十分に理解しました。したがって、ここで私がやろうとしているのは、メインナビゲーションのリンクがクリックされたときにページが読み込まれないようにすることです(理想的には、代わりにajaxを使用してページを読み込みます)。

これはこれまでの私のスクリプトであり、基本的に何も機能していません... Chromeでは、アラートが表示され、クリックされたリンクが表示されますが、Firefox4は私のスクリプトを完全に無視しているようです(Firebugコンソールには何も表示されません)。

どんな助けでも大歓迎です。

$(document).ready(function(){
$("#navigation a").each(function() {
    $(this).click(function(){
        event.preventDefault();
        loader();
    });
});

});

function loader(){
theLink = event.target;
alert("You clicked: " + theLink);
}
4

4 に答える 4

2

これにコードを更新してみてください

$(document).ready(function(){
    $("#navigation a").click(function(event){
        event.preventDefault();
        loader(event);
    });
});

function loader(event){
    var theLink = event.target;
    alert("You clicked: " + theLink);
}
于 2011-08-02T03:33:38.797 に答える
2
$(document).ready(function(){
    $("#navigation a").click(function(event){
            event.preventDefault();
            loader(event);
        });                

    function loader(event){
    theLink = event.target;
    alert("You clicked: " + theLink);
    }
});
于 2011-08-02T03:36:52.317 に答える
1

イベントオブジェクトをクリックハンドラーに渡していない。また、クエリの結果を列挙し、それぞれにクリックハンドラーをアタッチするため、.each()は必要ありません。.click()

次のように調整してみてください。

$(document).ready(function(){
    $("#navigation a").click(function(e) {
            e.preventDefault();
            loader(e);
        });
    });
});

function loader(e){
    theLink = e.target;
    alert("You clicked: " + theLink);
}
于 2011-08-02T03:32:44.527 に答える
-1

return falseクリック機能の最後に追加してみてください

 $(this).click(function(){
        event.preventDefault();
        loader();
        return false;
    });

そしてこのevent.preventDefault()を読んでvs.falseを返す

于 2011-08-02T03:33:11.240 に答える