我有一个ASP.NET datepicker控件(没有可用的源代码),它生成一个图像元素,单击该元素时会显示一个日历。我想通过JavaScript禁用或启用图像。当我将'disabled'属性添加到img元素时,页面中的某些脚本总是处于繁忙状态,页面永远不会完成渲染。我猜是禁用属性会以某种方式引起冲突。
我现在的下一个尝试是禁用ASP.NET控件不加掩饰地添加的自定义单击事件。如何禁用click事件?如何重新启用它以使img正常工作。我也在使用jQuery 1.4。
答案 0 :(得分:0)
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等)。
答案 1 :(得分:0)
我在这里有一个示例,它将所有点击事件交换为隐藏的div,然后再次返回以重新启用:
可能有一些快捷方式可以做到这一点,但这有效。同样,您可以将点击处理程序存储在全局变量中并从中加载:
答案 2 :(得分:0)
我认为这个bug可能会发生,因为datepicker使用文本控件来做它的东西,但如果控件被禁用,则datepicker无法继续,但是你可以使用其他属性来做几乎相同的事情,使用属性只读标签:
readonly="readonly"
您可以在html输入中使用readonly属性。
希望这会有所帮助。
答案 3 :(得分:0)
您可以使用unbind()使用jquery删除任何自定义事件处理程序。