現在、iOSとAndroidの両方でwebappsを開発しています。ドキュメントツリーにない要素(iOS)のタッチイベントをバインドできません
iOSでタッチイベントをキャプチャしようとしていますが、要素をドキュメントツリーに読み込む前にそれを取得できません。ここにコードがあります。
var test1 = $("<div>").css({
width: "300px",
height: "300px",
"background-color":"#ff00ff"
});
var test2 = $("<div>").css({
width: "100px",
height: "100px",
"background-color":"#ffff00"
});
$(test1).append($(test2));
$(test1)[0].addEventListener("touchstart",function(){
alert("listen addEventListener");
});
$(test1).bind("touchstart",function(e){
alert("listen bind");
});
$(test1).on("touchstart","div",function(e){
alert("listen on");
});
$("body").append($(test1));
私のiPadでは、body1の下にtest1を追加する前にこれらのコールバックをバインドするとタッチイベントが発生しません。 でもAndroid搭載の携帯電話では動作します。
タッチスタートからクリックまでリスニングイベントを変更すると、iOSでも動作します。
私はiOSに関するtoucheventについて迷っていることはありますか?
私はBackbone.jsを使用して私のWebアプリケーションのイベントをバインドしています。 Backbone.jsはDOMツリーに追加する前にイベントをバインドします。このtest1とtest2はテスト目的のためだけです。要素を追加した後にイベントをバインドすることで解決できることは分かっていますが、なぜそれが機能しないのかがわかりません。 –