Убрать мышинку? - PullRequest
       58

Убрать мышинку?

1 голос
/ 13 августа 2010

Я пытаюсь отсоединить событие mouseup от элемента.Я пробовал следующее, но ничего не работает.

$('#myElm').unbind('mouseup');
$('#myElm').unbind('onmouseup');
$('#myElm').unbind('click');

Как отменить привязку события, назначенного с помощью $ ('# myElm'). Mouseup (function ({...}); ???

Редактировать: Добавление полного кода


cacheBgArea.mouseup(function(){
      var $cursorInElm = $(cacheBgArea.selectedText().obj);
      var selectFontSize = parseInt($cursorInElm.css('fontSize')), selectFontFace = $cursorInElm.css('fontFamily');
      $fontSizeSlider.slider('value', selectFontSize);

      $chooseFontFace.find('option').each(function(){
         var $this = $(this);
         if ($this.val() == selectFontFace) {
            $this.attr('selected', true);
            return false;
         }
      });
      log('font weight: ' + $cursorInElm.css('fontWeight'));
      if ($cursorInElm.css('fontWeight') == 'bold' || $cursorInElm.css('fontWeight') == 401) {
         $boldCheckbox.attr('checked', true).change();
      } else {
         $boldCheckbox.attr('checked', false).change();
      }

      var objText = cacheBgArea.selectedText();
      if (objText.obj.nodeName == 'a' || objText.obj.nodeName == 'A') {
         $cursorInElm = $(objText.obj)
         var elmsHref = $cursorInElm.attr('href');
         if (elmsHref && elmsHref != '#') {
            $enterOwnLink.val(elmsHref).show();
            $switchToPage.show();
            $chooseLinkPage.hide();
            $chooseLinkTitle.html('Enter a Web Address');
         } else if ($cursorInElm.attr('linkPageId')) {
            $chooseLinkPage.find('option').each(function(){
               var $this = $(this);
               if ($this.val() == $cursorInElm.attr('linkPageId')) {
                  $this.attr('selected', true);
                  return false;
               }
            });
            $enterOwnLink.hide();
            $switchToPage.hide();
            $chooseLinkPage.show();
            $chooseLinkTitle.html('Choose a Page');
         }
      } else {
         $('#noneLink').attr('selected', true);
         $enterOwnLink.hide();
         $switchToPage.hide();
         $chooseLinkPage.show();
         $chooseLinkTitle.html('Choose a Page');
      }
   });

Я проверил, что cacheBgArea действительно определен. Да, событие связано до вызова unbind. Этоэто unbind. (log - это просто сокращение от console.log ();)

log('cacheBgArea.length: ' + cacheBgArea.length);
cacheBgArea.unbind('mouseup');//TODO: fix this, not unbinding...

1 Ответ

9 голосов
/ 13 августа 2010

Это должно работать:

$('#myElm').unbind('mouseup');

Можете ли вы опубликовать свой полный код привязки? Кроме того, вы уверены, что он работает после .mouseup(), запущенного?

.mouseup(func) - это сокращение для .bind('mouseup', func), поэтому отмена сопоставления равна .unbind('mouseup') (обратите внимание, что отмена привязки все из обработчиков mouseup, а не только анонимной функции, вам потребуется именованная функция, если вы хотите удалить определенный обработчик).

...