如何在JavaScript中禁用/启用img元素的自定义单击事件

如何在JavaScript中禁用/启用img元素的自定义单击事件,javascript,jquery,Javascript,Jquery,我有一个ASP.NET datepicker控件,没有生成图像元素的可用源代码,单击该元素时会显示日历。我想通过JavaScript禁用或启用按需图像。当我将“disabled”属性添加到img元素时,页面中的某些脚本总是处于忙碌状态,页面永远不会完成渲染。我猜disabled属性在某种程度上导致了冲突 我现在的下一个尝试是禁用ASP.NET控件意外添加的自定义单击事件。如何禁用单击事件?如何重新启用,使img恢复正常工作。我还使用jQuery1.4 var $img = $('img#your

我有一个ASP.NET datepicker控件,没有生成图像元素的可用源代码,单击该元素时会显示日历。我想通过JavaScript禁用或启用按需图像。当我将“disabled”属性添加到img元素时,页面中的某些脚本总是处于忙碌状态,页面永远不会完成渲染。我猜disabled属性在某种程度上导致了冲突

我现在的下一个尝试是禁用ASP.NET控件意外添加的自定义单击事件。如何禁用单击事件?如何重新启用,使img恢复正常工作。我还使用jQuery1.4

var $img = $('img#yourid'),
    handler = $img.get(0).onclick; // previous click handler
// unbind
$img.unbind('click').click(function(){
    alert('new click');
});
// rebind
$img.unbind('click').click(handler);

您可能还需要检查其他事件mousedown mouseup等。

我这里有一个示例,它将所有单击事件交换到一个隐藏的div,然后再次返回以重新启用:

可能有一些捷径可以做到这一点,但这是可行的。同样,您可以将单击处理程序存储在全局变量中,并从该变量加载它们:


我认为这个错误可能会发生,因为datepicker使用文本控件来完成它的工作,但是如果该控件被禁用,datepicker将无法继续,但是您可以使用其他属性来完成几乎相同的事情,在标记中使用属性readonly:

只读=只读

您可以在html输入中使用readonly属性


希望这有帮助。

您可以使用jquery删除任何自定义事件处理程序。

当您尝试在文档准备就绪后禁用was if时?是。我有一个复选框,用于启用/禁用img。