1

これが私のコードです。スワイプはドキュメント内の任意の場所を対象とし、クリックは img を閉じるためのものですが、実行されるコードは同じです。何かアドバイス?大したことではありませんが、できればより小さくてきれいなコードが欲しいです。これはモーダルタイプのウィンドウ用です。

                 $(document).on("click", "#close", function () {
                     ttl.html(docTitle + air);
                     window.history.pushState({}, docTitle + air, docURL);
                 }).on("swipeleft swiperight", function () {
                     ttl.html(docTitle + air);
                     window.history.pushState({}, docTitle + air, docURL);
                 });
4

2 に答える 2

4

ここには理想的な解決策はないため、次のように簡単に実行できます。

var f = function () {
      ttl.html(docTitle + air);
      window.history.pushState({}, docTitle + air, docURL);
}
$(document).on("click", "#close", f).on("swipeleft swiperight", f);

これをグローバル スコープまたは大きなスコープで行う場合は、全体を IIFE で囲んで、外側のスコープをクリーンに保つことができます。

(function(){
    var f = function () {
          ttl.html(docTitle + air);
          window.history.pushState({}, docTitle + air, docURL);
    }
    $(document).on("click", "#close", f).on("swipeleft swiperight", f);
})();
于 2013-09-17T18:44:13.493 に答える
1

それを行う関数を作成して呼び出すことができます。

function foo(ttl, docTitle, air, docURL) {
   ttl.html(docTitle + air);
   window.history.pushState({}, docTitle + air, docURL);
}

on ステートメント内から呼び出すだけです。

$(document).on("click", "#close", 
        foo(ttl, docTitle, air, docUrl)).
    on("swipeleft swiperight", 
        foo(ttl, docTitle, air, docUrl));
于 2013-09-17T18:48:29.193 に答える