2012-02-23 2 views
2

Вот что я пытался до сих пор:JQuery очередь preventdefault и выключаться

var preventDefaultFunc = function(e){ 
      e.preventDefault(); 
     } 

тогда я называю его в функции мыши позже:

$('.item').click(function(e){ 

      var $this = $(this); 
      var $thisChild = $this.find('.item-content'); 
      if ($this.hasClass('big')) { 
       return false; 
      } 

      $this.on(preventDefaultFunc); 
    // make the box bigger and load the article inside it here 
}); 

Я сделал это так, чтобы я мог повернуть его позже, потому что в вопросе div нужно разрешить клики внутри него, когда он сделан большим.

Переключатель включения/выключения не работает, так как он должен остановить загрузку страницы в поле, чтобы я мог увеличить размер коробки и загрузить статью с помощью ajax. Обратите внимание, что вкл/выкл является версией jquery 1.7 bind/unbind.

Любые предложения?

+1

Да, правильный способ т сделать на события (поправьте если не прав) $ (..). На («нажмите» , функция (e) {..}) или $ (..). on ('click', 'a', function (e) {..}). затем, чтобы отключить его ($) .. (off) (это щелчок), это отменит клик, the preventDefault просто прекратит выполнение ссылки href. Это поможет немного. –

ответ

4

пытается понять свой смысл позволяет иметь astab на него :-)

$('.item').on('click',function(e){ 
     e.preventDefault(); 
     var $this = $(this); 
     var $thisChild = $this.find('.item-content'); 
     if ($this.hasClass('big')) { 
      return false; 
      } 
     //-- this should unbind your click 
     $('.item').off('click'); 

     // make the box bigger and load the article inside it here 
    }); 
+0

Это проще, спасибо! –

+0

не проблема :-) –

1

Если вы хотите, чтобы остановить действие по умолчанию щелчок, просто замените это:

$this.on(preventDefaultFunc); 

с этим:

e.preventDefault(); 

Я не 100% ясно, что вы пытаетесь кроме предотвращения действия по умолчанию для кликов, но мне кажется, что вы задумываетесь над ним. Если это не поможет, попробуйте объяснить настройки и цели немного дальше.

+0

Проблема заключалась в том, что мне нужно было отпереть предотвратитьDefault после. –

1

Больше не должно быть $ this.on ('click', preventDefaultFunc) ?

+0

Вот где я ошибся с синтаксисом. Thanks for clearing, что –

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