それを読んで、使用のために何度か「通知」されたのとlive
は対照的にon
、すべてのコードをon
...に移動し、多くの問題を抱えています!!
そのほとんどは克服しましたが、今日は非常に奇妙な問題があります。
メッセージヘッダーが表示される質問/回答掲示板がありますが、ヘッダーをクリックするとコンテンツが動的に読み込まれ、HTML は
<div class="headerRow" id="header_<%# Eval("headerId")%>">
<span class="delete" id="delete_<%# Eval("msgId")%>"></span>
<span class="markClosed" id="close_<%# Eval("headerId")%>"></span>
<span id="view_<%# Eval("msgId")%>" class="openCurrent">
<span class="customerData userCol">
<span class="qName"><%# Eval("customerName")%></span>
<span class="qEmail">(<%# Eval("email")%>)</span>
</span>
<span class="subjectCol"><%# Eval("subject")%></span>
<span class="timeCol"><%# Eval("dateTime")%></span>
</span>
<span class="reply" id="reply_<%# Eval("msgId")%>"> Reply </span>
</div>
headerRow
メッセージ スレッドを閉じたり削除したりするためのいくつかのボタンと、span
メッセージの詳細、ユーザー名、電子メールの件名、および返信フォームを開くために押すボタンを含むコンテナーがあります。
クラスを含むスパンにopenCurrent
は、次のようにバインディングに関する jQuery があります。
$('body').on('click', '.openCurrent', function (e) {
var msgid = extractNumbers($(this).attr('id')); // sub function to pull the message ID from the element ID
if ($('#content_' + msgid).html() == '') {
$(but).addClass('centreLoader');
getMsgContent(msgid, 'absolute', function (result) {
// getMsgContent is an AJAX call returning the message
$('#content_' + msgid).html(result).slideToggle();
});
} else {
$('#content_' + msgid).slideToggle();
};
});
現在、これは私の PC では完全に機能しますが、iPad では信頼できません。
時々機能しますが、なぜ/いつ機能するかについてのパターンを理解できません。
私は最初、on
バインドを次のようにしました。
$('.headerRow').on('click', '.openCurrent', function (e).....
しかし、モバイル Safari のバグについて読んだ後、ここで:
jQuery .on() および .delegate() が iPad で機能しない
ボディに変えてみましたが、挙動に変化はありませんでした。
click
この場合、要素に CSS が含まれていない限り、モバイル Safari はイベントをトリガーしないことにも以前気付きましたcursor:pointer
。デスクトップ GUI で視覚的に意味があるため、既に配置されています。
誰でもアイデアはありますか?
編集:
iPad の Chrome でも機能しません。
追加編集:
headerRow
クリックイベントを要素にバインドしようとしましたが、同じ問題が発生します