gpt4 book ai didi

javascript - 打开或关闭内联 onClick 事件

转载 作者:行者123 更新时间:2023-11-27 23:44:15 25 4
gpt4 key购买 nike

我正在做一些验证,我需要关闭内联 onClick 事件,然后将其打开。

Jquery on off 方法不适用于内联 onClick 事件。下面的行删除了 onClick 事件。在此之前,我将事件保存到数组中

$('.elements a').prop('onclick',null).on('click');

将事件保存到数组中

    var arr = [];
var i = 0;
$('.elements a').each(function(){
arr[i++] = $(this).attr('onclick');
});

如何以相同的顺序将这些事件重新分配给每个元素。希望可以使用 addEventListener 添加它?

或者还有其他方法可以达到同样的效果吗?

最佳答案

由于您必须使用内联事件处理程序,因此您可以将删除的属性存储在数组中,然后将它们重置回来:

var events = $('.elements a').map(function() {
var onclick = $(this).attr('onclick');
$(this).removeAttr('onclick');
return onclick;
}).get();


// ... Apply events later
$('.reset').click(function() {
$('.elements a').each(function(i) {
$(this).attr('onclick', events[i])
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="elements">
<a href="#" onclick="console.log(1)">Link 1</a>
<a href="#" onclick="console.log(2)">Link 2</a>
<a href="#" onclick="console.log(3)">Link 3</a>
</div>

<button class="reset">Reset events</button>

关于javascript - 打开或关闭内联 onClick 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33385424/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com