なぜこのjQuery機能はiPhone OSで機能しないのですか?
-
28-10-2019 - |
質問
次のjQueryは、ほとんどのデスクトップブラウザーで正常に動作しますが、AndroidおよびiPhoneブラウザでは失敗します。
$('#submit_event').live('click', function() {
if ($("#event_name").attr("value") != "" && $("#event_details").attr("value") != ""){
sendEvent($("#event_name").attr("value"), $("#event_details").attr("value"));
$('#response_container').append("<div class='event_title'>"+$("#event_name").attr("value")+"</div><div class='event_details'>"+$("#event_details").attr("value")+"<div class='comment'>Comment</div><textarea class='comment_area'></textarea><div id='post_comment'>Post</div></div>");
}
});
#submit_eventは、divの単なるIDです。クリックすると、デスクトップブラウザで機能を実行しますが、AndroidやiPhoneでは機能しません。
よろしく、
テイラー
解決
より効率的なコードを試すことができます:
$('#submit_event').live('click', function() {
var eName = $("#event_name").attr('value');
var eDetails = $("#event_details").attr('value');
if (eName && eDetails) {
sendEvent(eName, eDetails);
$('#response_container').append("<div class='event_title'>" +
eName +
"</div><div class='event_details'>" +
eDetails +
"..."
);
}
});
他のヒント
OK私は私の答えを見つけました、
モバイルサファリのバグです。
必要なのは、ライブ関数にバインドする要素にonclick = ''を追加するだけで、機能します。
はい。LiveイベントはTDのような要素では機能しません。アンカータグ、ボタンなどのHTML要素で動作します。したがって、jQueryのliveイベントを使用してクリックイベントを適用する場合は、最初にonclick = ""属性をTD要素にjquery .attrメソッドを使用して追加する必要があります。 TD要素でイベントをバインドするライブイベント。詳細については、以下のブログをご覧ください
http://skillfulness.blogspot.com/2010/11/workaround-for-jquery-live-event.html
JQuery Mobileも使用している場合は、試してみたいと思うかもしれません
$('#submit_event').live('tap', function() {}
所属していません StackOverflow