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 回答