JQuery включить предотвращение включения и выключения - PullRequest
2 голосов
/ 24 февраля 2012

Вот что я пробовал до сих пор:

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.

Есть предложения?

Ответы [ 3 ]

5 голосов
/ 24 февраля 2012

пытаясь понять ваше значение, давайте попробуем 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
  });
1 голос
/ 24 февраля 2012

Разве это не должно быть больше похоже на $ this.on ('click', protectDefaultFunc)?

1 голос
/ 24 февраля 2012

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

$this.on(preventDefaultFunc);

на:

e.preventDefault();

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

...