2014-12-27 3 views
1

У меня есть следующий jquery, чтобы остановить работу каких-либо ссылок. Он работает в Chrome, но не работает в Firefox. Я не вижу никаких ошибок. За какой-то информации, которую я нашел в Интернете изменить импорт этого:JQuery, работающий в Chrome, но не в Firefox

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js" type="text/javascript"></script> 

<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.4/jquery-ui.min.js" type="text/javascript"></script> 

Вот Jquery:

<script> 
    var j$ = jQuery.noConflict(); 
    j$(document).ready(function(){ 
      stopClick(); 
    }); 


    function stopClick(){ 
     j$(".cxfeeditem").on("click", "a", function() { 
       event.preventDefault(); 
     }); 
    } 

    </script> 

Спасибо за любую помощь, я действительно застрял.

+0

Если вы положили 'alert()' в обработчик, то это срабатывает? – Barmar

ответ

3

Вам необходимо передать объект события в качестве первого аргумента обработчика кликов. Попробуйте следующее:

function stopClick(){ 
    j$(".cxfeeditem").on("click", "a", function(event) { 
      event.preventDefault(); 
    }); 
} 
+0

Спасибо, это сработало! – Psymn

0

Ответ Symlink хороший, но он не дает объяснения, почему он работает. Вот что происходит:

В вашем исходном коде у вас была кнопка, действие по умолчанию которой, по-видимому, должно было отправить форму. Когда вы нажмете кнопку, она пошла вперед и сделала это - игнорируя написанный JavaScript.

Чтобы убедиться, что ваш JavaScript загружен как ожидалось, вы должны переопределить действие кнопки по умолчанию. Вы делаете это, передавая объект event в свою функцию и вызывая метод preventDefault(). Это позволяет JavaScript выполнять выполняемые вами действия, а не отправлять форму в соответствии с требованиями HTML.

Видимо FireFox достаточно умен, чтобы знать, что вы хотели сделать, но Chrome упорно поддерживал HTML по умолчанию.

Смежные вопросы