私はjQueryのモバイルの実装を確認 [実証済み]。彼らは毎回 'タンプード'の後に 'vmouseup'で 'タップ'イベントを発砲しています。
「タポルド」が発砲された場合、「タップ」イベントを発生させないようにするには、回避策はです。。カスタムイベントを作成するか、次のようにあなたが必要とするごとにソースを変更します。
あなたtapholdイベントハンドラでこれを入れ
$.event.special.tap = {
tapholdThreshold: 750,
setup: function() {
var thisObject = this,
$this = $(thisObject);
$this.bind("vmousedown", function(event) {
if (event.which && event.which !== 1) {
return false;
}
var origTarget = event.target,
origEvent = event.originalEvent,
/****************Modified Here**************************/
tapfired = false,
timer;
function clearTapTimer() {
clearTimeout(timer);
}
function clearTapHandlers() {
clearTapTimer();
$this.unbind("vclick", clickHandler)
.unbind("vmouseup", clearTapTimer);
$(document).unbind("vmousecancel", clearTapHandlers);
}
function clickHandler(event) {
clearTapHandlers();
// ONLY trigger a 'tap' event if the start target is
// the same as the stop target.
/****************Modified Here**************************/
//if (origTarget === event.target) {
if (origTarget === event.target && !tapfired) {
triggerCustomEvent(thisObject, "tap", event);
}
}
$this.bind("vmouseup", clearTapTimer)
.bind("vclick", clickHandler);
$(document).bind("vmousecancel", clearTapHandlers);
timer = setTimeout(function() {
tapfired = true;/****************Modified Here**************************/
triggerCustomEvent(thisObject, "taphold", $.Event("taphold", { target: origTarget }));
}, $.event.special.tap.tapholdThreshold);
});
}
};
これはどのように使用しますか? –
@JeremieWeldin上記は、jquery.mobile.jsファイル自体の変更点を示しています。 –
私はそれを最終的に得ました。私はそのようにコメントするために戻ってきたはずです。ありがとう! –