2013-06-18 3 views
2

У меня есть два метода .click, и я не уверен, почему они будут работать только в отсутствие друг друга.Два метода .click, мешающие друг другу?

Код:

1 Ответственный за раздвижными и скрытие контента

var clickAction = function(){ 
     settings.tabHandle.click(function(event){ 
      if (obj.hasClass('open')) { 
       slideIn(); 
      } else { 
       slideOut(); 
      } 
     }); 

     clickScreenToClose(); 
    }; 

2 Ответственный за выборочно перезагрузка DIV

$(
function(){ 
    var jContent = $("#simplecart_items"); 
    $("a").click(
     function(objEvent){ 
      var jLink = $(this); 
      jContent.load(jLink.attr("href")); 
      return(false);      
     } 
     ); 

} 
); 

Любые идеи?

+1

'$ («а») .click (' является очень общим и может быть легко перепутать. Пожалуйста, добавьте ваши где вы определяете 'settings.tabHandle'? – jtheman

+0

Вы получаете ошибки консоли? – Dom

+3

Я бы предположил, что' return false' в обработчике одного клика предотвращает запуск другого обработчика кликов. – Blazemonger

ответ

3

Попробуйте заменить возврат (false); в числе 2 с objEvent.preventDefault();

jQuery.on()

обработчики событий в JQuery могут предотвратить барботирование используя возвращаемое значение лжи, или позвонив по телефону этих методов объекта события: event.preventDefault(), event.stopPropagation() и (event.stopImmediatePropagation)

event.preventDefault() не позволяет браузеру выполнять действие по умолчанию для события, например form submit, навигация ...

event.stopPropagation() останавливает jQuery от вызывающих обработчиков, прикрепленных к узлам далее вверх по DOM. Обработчики, прикрепленные на том же уровне, все равно будут вызваны.

event.stopImmediatePropagation() останавливает вызов всех обработчиков.

Возвращение ложь из обработчика событий автоматически вызывает event.stopPropagation() и event.preventDefault()

+0

Спасибо, Патрик, это именно то, что я закончил делать. Работал как шарм. Информация очень ценится! – user2487746

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