Отключенный ввод по-прежнему реагирует на события мыши после отключения привязки - PullRequest
0 голосов
/ 20 января 2012

Я использую код jQuery Хавило Дмитрия * для флажков и радиокнопок .Это выглядит хорошо, но его код отключения не работает.Кнопка, как и ожидалось, неактивна, но она по-прежнему реагирует на щелчки мыши.

Я предполагаю, что проблема в том, что он связывается с отключением следующим образом:

var ch = this; /* Reference to DOM Element*/
...   
$ch.bind('disable', function() {ch.wrapperInner.addClass(settings.cls+'-disabled');})
   .bind('enable',  function() {ch.wrapperInner.removeClass(settings.cls+'-disabled');});

Этокод удаляет любую привязку по умолчанию, которая отключает события мыши?Спасибо.

1 Ответ

0 голосов
/ 20 января 2012

Единственное, что делает код, это привязывает функции к событиям 'disable' & 'enable'

Когда происходит событие «отключить», он добавляет класс jquery-checkbox-disabled во внутренний диапазон. Он удаляет его по событию enable.

<input name="checkbox.1.2" type="checkbox" id="check" checked="" style="position: absolute; z-index: -1; visibility: hidden; " disabled="disabled">
<span class="jquery-checkbox jquery-checkbox-checked">
  <span class="mark jquery-checkbox-disabled">
    <img src="empty.png">
  </span>
</span>

Как вы можете видеть, флажок отключается, но элементы, которые предоставляют вам этот внешний вид, являются просто обычными интервалами, которые по-прежнему кликабельны.

Похоже, что Дмитрий передает события кликов этих промежутков в скрытый флажок.

a.wrapper.click(function(e) {
                b.trigger('click', [e]);
                i(e);
                return false
            });

Вот почему вы все еще получаете события щелчка флажка, даже если он отключен. Флажок выбирается программно.

Так что, если ваша проблема заключается в том, что вы пытаетесь определить, когда флажок изменился, то я рекомендую вам использовать событие change, так как оно, похоже, не имеет той же проблемы.

http://jsfiddle.net/vW6gj/

...