如何使用jQuery长按?

How to use jQuery longclick?

我正在使用数据表插件并将其用于点击:

$('.datatable').on('click', 'img#openpli-playlist', function(e) {
    alert("You clicked OPENPLI ICON!");
});

现在我需要使用 jQuery 插件 longclick 并使用它:

$('.datatable').longClick(function(e) {
    alert("You clicked OPENPLI ICON!");
},1000);

所以问题是如何将选择器添加到 longclick 我为选择器尝试了这个但不起作用:

$('.datatable img#openpli-playlist').longClick(function(e) {
    alert("You clicked OPENPLI ICON!");
},1000);

谁能给我解决为什么这不起作用?

谢谢

简单的修复是:

var tmr = 0;
$(element).mousedown(function () {
  tmr = setTimeout(function () {
    alert("You clicked for 1 second! Wow!");
  }, 1000);
}).mouseup(function () {
  clearTimeout(tmr);
});

现在也可以用在委托中了:

var tmr = 0;
$(static_parent).on("mousedown", element, function () {
  tmr = setTimeout(function () {
    alert("You clicked for 1 second! Wow!");
  }, 1000);
}).on("mouseup", element, function () {
  clearTimeout(tmr);
});

您的解决方案:

var tmr = 0;
$('.datatable').on('mousedown', 'img#openpli-playlist', function(e) {
  tmr = setTimeout(function () {
    alert("You clicked OPENPLI ICON!");
  }, 1000);
}).on('mouseup', 'img#openpli-playlist', function(e) {
  clearTimeout(tmr);
});

作为之前回答的改进,可以这样区分点击和长按:

var tmr = 0;
var islong = 0;

$(element)
  .mousedown(function () {
    tmr = setTimeout(function () {
      // Handle the long-press
      alert("You clicked for 1 second!");
      console.log("You clicked for 1 second!");
      islong = 1;
    }, 1000);
  })
  .mouseup(function () {
    if (islong == 0) {
      // Handle the click
      alert("This is a click!");
      console.log("This is a click!");
    }
    islong = 0;
    clearTimeout(tmr);
  });