jQuery/HTML -禁用OnClick

zdwk9cvp  于 2023-08-04  发布在  jQuery
关注(0)|答案(8)|浏览(111)

正如标题所说,我正试图禁用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之后。

k3bvogb1

k3bvogb11#

您可以添加off("click");
Fiddle

$(function () {
    $("#test").click(function(){alert('test');});
    $("#test").off('click');

});

字符串
此代码将演示如何删除先前添加的单击事件。

ruoxqz4g

ruoxqz4g2#

简单的表单,结合jquery和JavaScript。

// To disable:    

$('#test').each(function (){
    this.style.pointerEvents = 'none'; 
}); 

// To re-enable:
$('#test').each(function (){
    this.style.pointerEvents = 'auto'; 
});

字符串
因此,您可以更改多个标记的选择器

rlcwz9us

rlcwz9us3#

**如果在div添加到页面之前使用这些选项,那么您尝试的所有选项都不会起作用。**因此,请确保将您的代码放在创建div的其他脚本之后。

如果多个元素具有相同的id,这也是一个问题。
关于你尝试过的方法:

$("#test").click(function(){ return false});
$("#test").unbind();
$("#test").removeAttr("onclick");

字符串
第一行将向元素添加一个 new click处理程序,它阻止默认行为并停止事件传播 *up *,但它不会阻止绑定到元素的其他事件处理程序运行-特别是如果它们在您的新处理程序之前运行,显然。
第二行将删除与jQuery连接的事件处理程序,但不删除通过其他方式连接的处理程序。
第三行应该可以删除内联onclick属性(如果存在),但不能删除jQuery添加的处理程序。
假设你仍然不能停止点击行为,即使在确保你的代码在div被添加到页面后运行,你可以尝试如下方法:

var $test = $("#test").removeAttr("onclick"),
    $contents = $test.contents().detach();
$test.replaceWith($test.clone(false).append($contents));


演示:http://jsfiddle.net/A9tmu/3/
这里的想法是用元素本身的克隆替换元素,因为克隆版本(当用.clone(false)创建时)将不保留事件处理程序。在克隆之前,我暂时分离了div的内容,这样任何子元素都可以保留它们的事件处理程序。

mkshixfv

mkshixfv4#

试试这个:
要禁用:

$("#test").css("pointerEvents","none");

字符串
要启用:

$("#test").css("pointerEvents","auto");

x8diyxa7

x8diyxa75#

$('#test').on('click', function(e) {e.preventDefault();return false;});

字符串

hwazgwia

hwazgwia6#

试试这个:

$("#test").click(function(event) {
    event.preventDefault();
});

字符串

mhd8tkvw

mhd8tkvw7#

试试这个

$('#test').unbind('click')

字符串

$( "#test" ).bind( "click", handler );
   $( "#test" ).unbind( "click", handler );


试试这个

$( "#test" ).on("click", function () {
  });
$("#test").off("click");

w8biq8rn

w8biq8rn8#

您可以unbind点击事件进入click事件:

$("#test").click(function(){
        $( "#test" ).unbind( "click");
        alert('Jquery/Javascript Event');
    });

字符串
Try JsFiddle

相关问题