2011-11-19 8 views
12

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 UIの実装にはいくつかのマイナーな特質があると私に信じています。

誰でもこれを見ましたか?私はしばらく時間をかけて同じ問題を抱えている人を見つけようとしましたが、それについて何も言及していませんでした。他の誰かが同じ問題を見ていますか?

答えて

8

これは私にとっても起こります。

ボタンをクリックしてもマウスを押したままにしなければ問題ないと思うのですが、それは機能しません。

たとえば、ゆっくりとしたペースでマウスを動かしながらボタンをクリックしてみてください。マウスがほとんど動かない限り、ボタンは機能しません。また、ボタンを1ピクセルだけドラッグしてから離してみてください。

この問題を回避するために、その作品に出会ったサイトはmousedownを使用しているようです。また、古いバージョンのjQuery UIも使用しています。

+1

同じ、それはひどいです!これにjqueryのバグはありますか? – ack

+0

yaそうです:http://bugs.jqueryui.com/ticket/5454 –

+1

@ NadirMuzaffar私はこれが詳細をキャプチャするためのより良いバグ要求だと思う:http://bugs.jqueryui.com/ticket/7665 – Brombomb

7
$("#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; 
    } 
} 
+0

私はこの回避策を試しました - それは動作します:クリックしながらマウスを動かすと、ボタンの状態は変わります。ありがとうございました! – Kel

+0

これはChromeとIEでうまくいきましたが、上のリンクを読んでいる間に[link](http://bugs.jqueryui.com/ticket/7665)のコメントに気づきました。これはFirefoxの動作と関係があります特に。テストでは、アンバインド作業がFirefoxに奇妙で悪影響を与えているようです。 – Nato

+0

残念なことに、Firefox上ではこれがすべて機能していたという幻想を作り出しました(グラフィックの変更を入力しても変更イベントは発生しません) – pete

関連する問題