0

次のようなリストを動的に生成します。

$("#list").append("<li><a class='touchable' id=" + results.rows.item(i).id + " href='#list' onclick='showDetailsList(" +  results.rows.item(i).id + ");'>" + results.rows.item(i).name + "</a></li>");

ご覧のとおり、「タッチ可能」クラスをリンクに追加します。今私が持っています:

$(document).on("taphold",".touchable",function(e){
    e.preventDefault();
    e.stopPropagation();
    $(this).simpledialog2({
        mode:"blank",
        headerText:"Image Options",
        showModal:false,
        forceInput:true,
        headerClose:true,
        blankContent:"<ul data-role='listview'><li><a href=''>Send to Facebook</a></li><li><a href=''>Send to Twitter</a></li><li><a href=''>Send to Cat</a></li></ul>"
    });
});

「e.preventDefault()」を追加しました。しかし、リンクを数秒間タップするとダイアログが表示されますが、クリックを離すと自動的に別のページにジャンプします。

ダイアログで選択するオプションが必要で、他のページには移動しません。これどうやってするの?

4

1 に答える 1

1

私が考えているのは、クリックを離すとclick、リンクでイベントが発生し、別のページにジャンプするということです。できることは、clickイベント ハンドラーを$(this)タップホールド イベント ハンドラー内にバインドして、イベントのバブリングを防ぐことです。

だから、このようなもの

$(this).one("click", function(e) { // one to only handle one (the next) click event
  e.preventDefault();
  e.stopPropagation();
});

Taphold ハンドラー内で動作するはずです。

于 2013-09-05T09:14:56.210 に答える