2012-05-03 9 views
0

入力フィールド(jquery UIコンボボックスウィジェットによって作成された)がイベントが発生しないセレクタの範囲にあるclick()イベントをどのように書くのでしょうか?jQuery UI Comboboxウィジェットはclick()イベントで動作しませんか?

私は、エンドユーザーが正しく記入しなかった場合、cssクラス 'reqFieldGroupEmpty'を使用してフォームフィールドの親<div>をハイライト表示するフォームを持っています。私は開始時に述べたように、私はクリック()イベントを持って逃し必要なフィールド内のユーザーがクリックは、しかし、そのフォームフィールドの親

$('input, textarea, select').click(function() { $('div').removeClass('reqFieldGroupEmpty') }); 

のそのクラスを削除

、コンボボックスが作成したISN」 click()をトリガーするため、クラスを削除しません。

私には何が欠けていますか?

ありがとうございました!

+0

あなたはそのが起こっかを確認するにはjsfiddle.netを提供することができますか? firebugでchromeまたはfirefoxを使用している場合、ブレークポイントを設定して実行されているかどうかを確認できます – Jarry

+0

click()でconsole.log(「クリックしました」)メッセージでfirebugを使用しています。 jQueryセレクタの他のすべての入力とともに実行されますが、ウィジェットによって作成されたものではありません。私も$( 'input [role = "textbox"] .ui-autocomplete-input')を使って、その入力の中心に行くことを試みました。 ")});それはどちらもうまくいきません。 – WizzyBoom

答えて

0

ポストはjQueryのフォーラムを通じてJakeCigarによって答え: http://forum.jquery.com/topic/jquery-ui-combobox-widget-not-working-with-click-event#14737000003343231

クリックするだけで、あなたがそれを設定したときに存在する要素を見つけることですアップ。 が.onの繰延形()を使用してください - jQueryのAPIを

$('body').on('click’, 'input, textarea, select' , function() { $('div').removeClass('reqFieldGroupEmpty') }); 

JΛ̊KE」私はwizzyを見ていたものを再現することができると思い

0

ではなく、クリックの焦点()イベントに結合してみてください...

+0

素晴らしいアイデアです。これは、入力要素がウィジェットによって作成されたため、イベントハンドラにバインドされていないため、ほとんど同じですか?スクリプトから作成されたイベントを強制的に要素にバインドする方法はありますか?私はlive()またはon()で運がなかったと言わざるを得ないが、私はそれらを間違って実装している可能性がある。私はjQuery 1.7です。思考? – WizzyBoom

+0

は本当にあなたがもっと助けるために使用しているHTMLとJavaScriptを見る必要があります...あなたはそれのためにJSFiddleを作成できますか? –

0

は、このコードは$(function(){...});内部で正常に動作します。:

$('<button>', {text: 'Go'}).appendTo($('body')).on('click', function() { 
    console.log('clicked'); 
}); 

しかし、ウィジェット内でクリックされたことは決して記録されません。例:

_init: function() { 
    $('<button>', {text: 'Go'}).appendTo(this.element).on('click', function() { 
     console.log('clicked'); 
    }); 
} 

ボタンは追加されますが、クリックイベントは発生していないようです。

http://jsfiddle.net/cawoodm/cww3c/

+0

OK、私の場合、問題はjQuery UIを呼び出すことです。イベントをバインドした後、私の要素のbutton()関数を呼び出します(jsfiddleリンクを参照)。これは既存のバインディングを削除する効果があるようです。 – Marc

関連する問題