Попытка предотвратить щелчок по умолчанию и запустить функцию вместо - PullRequest
2 голосов
/ 02 августа 2011

Я довольно новичок в JS и jQuery, и я только что достаточно разбирался в базовом JS, чтобы попробовать некоторые вещи в jQuery. Поэтому я пытаюсь предотвратить загрузку страниц при нажатии на ссылку в основной навигации (и в идеале вместо этого следует загружать страницу с помощью ajax).

Итак, пока это мой сценарий, и в основном ничего не работает ... в Chrome появляется предупреждение и отображается ссылка, по которой щелкнули, но FF4, похоже, полностью игнорирует мой сценарий (консоль firebug ничего не показывает).

Любая помощь приветствуется.

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

});

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

Ответы [ 4 ]

2 голосов
/ 02 августа 2011
$(document).ready(function(){
    $("#navigation a").click(function(event){
            event.preventDefault();
            loader(event);
        });                

    function loader(event){
    theLink = event.target;
    alert("You clicked: " + theLink);
    }
});
2 голосов
/ 02 августа 2011

Попробуйте обновить свой код до этого

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

function loader(event){
    var theLink = event.target;
    alert("You clicked: " + theLink);
}
1 голос
/ 02 августа 2011

вы не передаете объект события своему обработчику кликов.Кроме того, вам не нужно .each(), так как .click() будет перечислять результаты вашего запроса и прикреплять обработчик кликов к каждому из них

, попробуйте настроить его на:

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

function loader(e){
    theLink = e.target;
    alert("You clicked: " + theLink);
}
0 голосов
/ 02 августа 2011

Попробуйте добавить return false в конце функции щелчка

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

и прочитайте это event.preventDefault () против возврата false

...