jQuery v 1.7.1
クロム v 18.0.1025.162
ドロップダウン メニューに jquery クリック イベント ハンドラを追加しました。FF/Safari では、クリックの直後にイベント ハンドラーが起動しますが、Chrome では奇妙な動作が見られます。
- ドロップダウンメニュー内をクリック
- イベント ハンドラーが起動していないことに注意してください (一方、FF/Safari では発生します)。
- ドロップダウン メニューにまだフォーカスがあるときに、コンピューター上の別のアプリケーションにタブで移動する
- タブで Chrome に戻る
- イベント ハンドラが起動したことに注意してください
あるいは、
- ドロップダウンメニュー内をクリック
- イベント ハンドラが起動していないことに注意してください
- ページの別の部分をクリックして、ドロップダウンがフォーカスを失うようにします
- イベント ハンドラが起動していないことに注意してください
- コンピューター上の別のアプリケーションに移動
- タブで Chrome に戻る
- イベント ハンドラが起動していないことに注意してください
$("#dropdown-id").detectRealTimeChange(function(){
$("#some-div").html("html コンテンツ");
);
/**
* 入力のフォーカスを失うことなく、入力の変更を検出する
*/
jQuery.fn.detectRealTimeChange = 関数 (コールバック){
var oldValue = $(this).val();
var didRecordChange = false;
$(this).keyup(関数(){
var newValue = $(this).val();
if(oldValue != newValue){
if(!didRecordChange){
changeCount = changeCount + 1;
didRecordChange = true;
}
}
そうしないと{
if(didRecordChange){
changeCount = changeCount - 1;
didRecordChange = false;
}
}
if(コールバックの種類 == '関数'){
callback.call(これ);
}
});
$(this).click(関数(){
var newValue = $(this).val();
if(oldValue != newValue){
if(!didRecordChange){
changeCount = changeCount + 1;
didRecordChange = true;
}
}
そうしないと{
if(didRecordChange){
changeCount = changeCount - 1;
didRecordChange = false;
}
}
if(コールバックの種類 == '関数'){
callback.call(これ);
}
});