Проблема события jQuery click в Firefox - PullRequest
0 голосов
/ 17 июля 2011

У меня есть следующее событие click, которое вызывает метод codeigniter для обновления моей базы данных. Он используется для отслеживания кликов по ссылкам. Он работает в IE9, но не в Firefox 3.6.3.

$(".link").click(function(event) {
    $.get('<?= base_url() ?>ajax/click_out/' + $(this).attr("site_id"));
});

Он вызывает правильный php-файл и отправляет правильную информацию, но получает пустой ответ. Если я добавляю предупреждение после получения, оно работает, и оно также работает, если я предотвращаю событие по умолчанию. Возможно ли, что Firefox не завершает ajax, потому что код исчезает, как только загружается новая страница?

Чтобы проверить это, я изменил код на:

$(".link").click(function(event) {
    event.preventDefault();
    var link = $(this);
    $.get('<?= base_url() ?>ajax/click_out/' + $(this).attr("site_id"));
    window.document.location.href = $(this).attr("href");
});

Я думал, что придется подождать, пока перенаправление не будет завершено, но это тоже не работает. Если я удаляю перенаправление, но оставляю в нем команду protectDefault, он отлично отслеживает щелчок (но, очевидно, не отправляет пользователя на сайт.

В случае необходимости, html ссылки:

<a href="<?= $url ?>" site_id="<?= $site_id ?>" class="link"><?= $title ?></a>

Я очень новичок в jQuery и javascript и буду признателен за любую помощь, которую смогу получить!

Ответы [ 2 ]

3 голосов
/ 17 июля 2011

вы можете перенаправить пользователя на сайт, когда запрос get завершится, перенаправив пользователя в обратном вызове success, например

$(".link").click(function(event) {
    event.preventDefault();
    var link = $(this);
    $.get('<?= base_url() ?>ajax/click_out/' + $(this).attr("site_id"),function(){
        window.document.location.href = link.href;

});

});

, посмотрите здесь http://api.jquery.com/jQuery.get/

0 голосов
/ 17 июля 2011

Просто выстрел в темноте, но вы можете попробовать что-то вроде этого ...

$.get("test.php", function(data){
    window.document.location.href = $(this).attr("href");
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...