Подтвердить что ты не робот

JQuery UI - кнопки набора кнопок не всегда работают при первом щелчке

Я использую набор кнопок jQuery UI (на основе нескольких переключателей). Все работает очень хорошо, но иногда, когда вы нажимаете на одну из кнопок, ничего не происходит (точно так же, как если бы вы никогда не нажимали на нее вообще). Я подумал, что, возможно, это была проблема с моей реализацией, поэтому я пошел на демонстрационный сайт:

http://jqueryui.com/demos/button/#radio

И потратил некоторое время, щелкая вокруг щелчка между различными вариантами. У меня такая же проблема! Случайно щелчок будет проигнорирован!

Я наткнулся на этот сайт:

http://www.filamentgroup.com/lab/styling_buttons_and_toolbars_with_the_jquery_ui_css_framework/

Какая версия была выполнена, и я не смог воспроизвести ту же проблему. Что побуждает меня поверить, что существует некоторая незначительная причуда с реализацией пользовательского интерфейса jQuery?

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

4b9b3361

Ответ 1

Это происходит и для меня.

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

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

Сайт, с которым вы столкнулись, работает, используя mousedown, чтобы избежать этой проблемы. Они также используют более старую версию пользовательского интерфейса jQuery, которая может быть фактором.

Ответ 2

 $( "#radio" ).buttonset();
 $( "#radio" ).find("label").unbind("mouseup");

потому что в исходном коде jquery есть:

.bind( "mouseup" + this.eventNamespace, function( event ) {
  if ( options.disabled ) {return; }
  if ( startXPos !== event.pageX || startYPos !== event.pageY ) {
                    clickDragged = true;
   }
}