在有限的时间内暂时禁用元素/图像的实时点击

disable live click for element/image temporarily for a limited duration

本文关键字:元素 图像 实时 时间      更新时间:2023-10-31

我有一个jquery .live("click")函数,用于单击图像时文本框将变为可编辑的图像。

现在,当我点击一些按钮(比如检查)时,我想禁用图像的实时点击。

我不想隐藏图像。

我试着设置

$("#contact_no_edit_img, #email_edit_img")
    .attr("disabled", "disabled")
    .css("opacity","0.5");

但实时点击仍然适用于该图像

除了隐藏图像或使用临时变量检测并允许实时点击之外,还有其他方法吗?!

注意:我不想把它改成.on,因为这需要我们重新编码整个项目!!

实际上,您不应该再使用.live()函数了。相反,您应该使用.on("click").off("click")。您应该看到关于这一点的jQuery文档:http://api.jquery.com/off/

您可以使用die()删除带有live()的处理程序集。

但值得注意的是,live及其相关函数自jQuery1.7以来就一直被弃用。您实际上应该将on与委托选择器一起使用。

您将需要查看.off()(适用于动态创建的元素的.unbind()的等价物),.die()已被弃用,已删除,甚至是限制每个绑定元素只有一个事件触发器的.one()

是否可以更改live的选择器?

$("#contact_no_edit_img:not([disabled=disabled])").live('click', function(){});

它将只作用于没有disabled="disabled"

的元素

使用die jquery禁用点击事件

 $( "p" ).live( "click", callback function );
// Now foo will no longer be called
$( "p" ).die( "click", callback function );