2012-04-26 3 views
0

У меня проблемы с attr ('disabled', 'disabled') в Internet Explorer с jQuery 1.7.1. Кнопки отображаются отключенными, однако, если их щелкнуть, они все равно выполняются. В firefox, safari и chrome это ведет себя так, как ожидалось (ничего не делает, блокируя щелчок). Есть идеи?jquery attr ('disabled', 'disabled') не работает полностью в IE (не отключает клик, но выглядит отключенным)

disableWizardButtons: function() { 
     jQuery(this.wizardButtonSelector).filter(this.enabledSelector).each(function() { 
      var button = jQuery(this); 
      button.data().originalClass = button.attr('class'); 
      button.removeClass().addClass('btn-secondary-disabled'); 
      button.attr('disabled', 'disabled'); 
      button.prop("onclick", null); 
     }); 
    } 
+2

Знаете ли вы, что вам нужно только написать 'jQuery' в своей длинной форме? Упакуя свой код в '(function ($) {....}) (jQuery);', вы можете использовать '$' независимо от того, использовался ли 'noConflict' или нет. И вы должны использовать '.prop ('disabled', true)' для отключения элемента. Кроме того, на отключенном элементе обычно никаких событий не запускается вообще. Вы также не должны пытаться отменить события, очистив свойство 'onclick'. Если вы связали их с помощью jQuery, отвяжите их, используя '.unbind ('click')'. – ThiefMaster

ответ

0

через ThiefMaster:

Знаете ли вы, что у вас есть только написать jQuery в своей длинной форме? Упакуя свой код в (function ($) {....}) (jQuery) ;, вы можете использовать $ независимо от того, использовался ли noConflict или нет. И вы должны использовать .prop ('disabled', true), чтобы отключить элемент. Кроме того, , что на отключенном элементе обычно никаких событий не запускается вообще. Вы также не должны попытаться отключить события, очистив свойство onclick. Если вы связали их с помощью jQuery, отвяжите их, используя .unbind ('click').

0

Обычно вы могли бы просто использовать

button.disabled = true; 

, но с момента получение JQuery OBJ попробовать

this.disabled = true; 
+1

Первый код не будет работать с объектом jQuery. Но '.prop ('disabled', true)' будет. Но его код должен работать в любом случае. Или 'this.disabled = true;' – ThiefMaster

+0

Да, я просто добавил 'this', так как hes wrapping. Я просто расстраиваюсь, когда вижу вещи, которые так просто сделать в js, абстрагированном библиотеками. – Loktar

+0

'.prop ('disabled', true)' работал! – gusterlover6

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