2010-11-23 9 views
3

変更イベントに添付されたjqueryイベントを使用して自分のWebページにドロップダウンリストを表示しています。私はajaxを使ってポップアップウィンドウで部分的なビューを読み込みます。イベントが添付されている場合、ドロップダウンリストのjqueryイベントの発生を防ぐ方法

ユーザーがキーボードを使用して項目のリストをナビゲートした後、ページの別の部分のリンクをクリックすると、一時的にポップアップウィンドウが表示されます。これは明らかに、ユーザーがページ上の他の場所でリンクをクリックしたときに、ドロップダウンで変更イベントが最初にトリガされるときに起こります。

この問題を解決する方法はありますか?簡単な解決策は、キーアップでイベントを発生させることですが、私はこの機能を実現させたくありません。

ここで変更イベントがどのような場合に解雇されたため、イベントを中止することができませんでしたコード

$('#lookup').change(function() 
{ 
    $.get(..//load template 

答えて

0

自分のスタイルで好きだったり清潔だったりした解決策が見つからないので、このシナリオを避けるために、「変更」イベントと「キーアップ」イベントの両方でトリガーをキャッチすることに決めました。

0

の変更イベントの抜粋です。

あなたのケースを考慮に入れるために、発生したイベントと$ .getメソッドの実際の呼び出しの間に一定のタイムアウトを設定することもできますが、それはうまくいく方法ではありません。

そうでなければ、特定の他の要素がフォーカスを取得した場合にのみリターン関数を呼び出すことができます(たとえば、ドロップダウンリストの後にテキストボックスがある場合など)。

ポップアップHASがドロップダウンの変更に表示されるように思われるので、あまり気にしません。それが重要でない場合は、ドロップダウンの右にあるヘルプボタンをクリックすると、ボタンをクリックするとウィンドウがポップアップします。

0

私は少しあなたの質問で混乱しています。しかし、 "変更"が真の変更ではないと仮定して、私はあなたが "lastSelected"の変数を保持することができると思います。変更が発生したら、それをチェックしてください。同じ場合は無視してください。それが違う場合は、Ajaxリクエストを起動し、 "lastSelected"の値を更新してください。

1

ajaxコールでは、あなたのajaxコールがキャッシュされる可能性があります。キャッシュを無効にしていることを確認してください。 "cache:false"のようなもの

+0

これはどのように質問に関係するのか分かりません。 –

関連する問題