正如标题所说,我正试图禁用OnClick的具体
<div id="test" style="display: block; opacity: 0.89;"></div>
字符串
这个div是从外部脚本加载的,这个脚本被混淆了,所以我看不到具体的代码。**
我试图去除这个
$("#test").click(function(){ return false});
$("#test").unbind();
$("#test").removeAttr("onclick");
//Suggestions which do not work
$('#test').on('click', function(e) {e.preventDefault();return false;});
$("#test").click(function(event){
event.preventDefault();
});
型
以上都不起作用。
编辑:使用.unbind(“click”)解决了我的问题;在创建div之后。
8条答案
按热度按时间k3bvogb11#
您可以添加
off("click");
Fiddle
字符串
此代码将演示如何删除先前添加的单击事件。
ruoxqz4g2#
简单的表单,结合jquery和JavaScript。
字符串
因此,您可以更改多个标记的选择器
rlcwz9us3#
**如果在div添加到页面之前使用这些选项,那么您尝试的所有选项都不会起作用。**因此,请确保将您的代码放在创建div的其他脚本之后。
如果多个元素具有相同的id,这也是一个问题。
关于你尝试过的方法:
字符串
第一行将向元素添加一个 new click处理程序,它阻止默认行为并停止事件传播 *up *,但它不会阻止绑定到元素的其他事件处理程序运行-特别是如果它们在您的新处理程序之前运行,显然。
第二行将删除与jQuery连接的事件处理程序,但不删除通过其他方式连接的处理程序。
第三行应该可以删除内联
onclick
属性(如果存在),但不能删除jQuery添加的处理程序。假设你仍然不能停止点击行为,即使在确保你的代码在div被添加到页面后运行,你可以尝试如下方法:
型
演示:http://jsfiddle.net/A9tmu/3/
这里的想法是用元素本身的克隆替换元素,因为克隆版本(当用
.clone(false)
创建时)将不保留事件处理程序。在克隆之前,我暂时分离了div的内容,这样任何子元素都可以保留它们的事件处理程序。mkshixfv4#
试试这个:
要禁用:
字符串
要启用:
型
x8diyxa75#
字符串
hwazgwia6#
试试这个:
字符串
mhd8tkvw7#
试试这个
字符串
或
型
试试这个
型
w8biq8rn8#
您可以
unbind
点击事件进入click
事件:字符串
Try JsFiddle