Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 只向正文添加一次事件_Jquery - Fatal编程技术网

Jquery 只向正文添加一次事件

Jquery 只向正文添加一次事件,jquery,Jquery,我正在尝试更改follow行以只添加一次处理程序 $('body').on('click.collapse.data-api', '[data-toggle=collapse]', function ( e ) { }) 我的想法是在第一次添加绑定之后向元素添加属性,并在添加绑定之前检查元素是否具有该属性 设置属性很容易: $('body').find('[data-toggle=collapse]').attr('data-loaded',"true"); 但是,更改选择器以检查属性是否未

我正在尝试更改follow行以只添加一次处理程序

$('body').on('click.collapse.data-api', '[data-toggle=collapse]', function ( e ) {
})
我的想法是在第一次添加绑定之后向元素添加属性,并在添加绑定之前检查元素是否具有该属性

设置属性很容易:

$('body').find('[data-toggle=collapse]').attr('data-loaded',"true");
但是,更改选择器以检查属性是否未设置是困难的部分

我试过这样的方法:

$('body').on('click.collapse.data-api', '[data-toggle=collapse] :not([data-loaded])',function ( e ) {
})
但它不起作用

有人能帮忙吗


谢谢。

我随便猜一下好吗

$('body').on('click', '.collapse.data-api[data-toggle="collapse"]', function(e) {
    if (!$(e.target).data('loaded')) $(e.target).attr('data-loaded', true);
});​

这样,单击仅在第一次工作时有效。我只需要绑定一次,而不是只单击一次:(为什么有人会绑定事件处理程序两次?为什么你甚至提到“只有一次”在你的问题中?不管怎样,编辑了答案,这又是一个猜测,因为很难理解你想要的是什么?我不想两次绑定事件。这只是一个尝试禁止无意复制绑定的故障保险机制。但我最终没有使用此方法。感谢尝试回答。