2010-12-31 19 views
1

iPad用に設計されたWebアプリケーションに問題があります。 jQueryとjQuery UIを使って要素を画面上にドラッグします。私はドラッグして、iPad上で要素をドロップすることができ、それを含めiPadでjQuery - click-eventが2回呼び出されました

http://code.google.com/p/jquery-ui-for-ipad-and-iphone/

、だけでなく、問題が発生します:iPadで、要素はデフォルトでドラッグすることはできませんので、私はこのライブラリを追加しました。私はドラッグ可能な要素の上にdivも画像で表示されます。これはクリック可能でなければなりません。

$(document).ready(function() { 
    $(".note").draggable(); 
    $('.closebutton').click(function() { 
     alert("test"); 
    }); 
}); 

問題があり、ドラッグ&ライブラリー、二回ポップアップ表示や、画面がフリーズされtest警告メッセージを含む:

は、だから私は、これらの行を統合します。 Firefoxの4ベータ版とSafariのように、それは一つだけtestメッセージはX上をマウスでクリックすることで表示され、動作しますが、通常のデスクトップブラウザで

http://jsbin.com/oliwo/2/

- :

は、私はここで完全な作業のデモを作成しました画像を削除する。 iPadでは、メッセージが2回表示されるか、画面が凍ってしまいます。

誰でも私を助けることができますか?事前にたくさんありがとう&最高のお付き合い。

答えて

0

理由はわかりませんが、alertメッセージを使用しないとうまくいきません。私は新しい要素を作成し、iPadとデスクトップのSafariで一度しか呼び出されません。

5

これは本当にレスポンスではありません。私はあなたがなぜそれを2度持っているのか分かりません。しかし、回避策を試すことができます。これは、クリックイベントがこのボタンにアタッチされる唯一のクリックイベントの動作であることを確信している場合です。アンバインドしてください()バインドしている直前に、これは結合以前のクリックを削除します(そう、これが数回実行された場合、あなただけのイベントを取得します):

$('.closebutton').unbind().click(function() { ... 

以上:

$('.closebutton').unbind('click').click(function() { ... 
+0

が動作しないクリックの伝播を避けるため、私は、2回の警告を得ましたメッセージ...ドラッグライブラリはクリック/タップイベントも処理し、クリック機能を2回呼び出すためだと思います。 – Tim

+0

これは私のために働いた!とても奇妙。 –

0

私はこの問題をiPadでしか見ていないかもしれません。おそらくWebkitのいくつかのバージョンが関連しています。アンバインドは私のために働いていましたが、jqueryコードがbody htmlタグ内にある場合にのみこれが存在します。

3

クリックでアラートボックスを表示すると、イベントが2回発生することがわかりました。私は...警告ボックスを表示するのsetTimeoutを使用することで、この問題を克服するために管理してきました

$("#myButton").unbind("click").click(function() { 
    // Have to use a setTimeout else on iPhone the alert may appear twice in certain scenarios 
    setTimeout(function() { alert('The message'); }, 300); 
    return false; // Return false to prevent href being followed 
}); 
0

単に

$("tr").live('click',function() { 

     ... 

     $(event.toElement).one('click', function(e){ e.stopImmediatePropagation(); }); 
    }); 
関連する問題