人!
我正在尽力解决下面的问题,但经过几个小时后,我无法看到正确的路径!让我解释一下:
有什么想法吗? 非常感谢你。 -G。
<script>
$(document).ready(function() {
$('#opener').click (function() {
$('#target').load ('http://my.url', function(){
$('#target').dialog({
title: 'My Title',
draggable: true,
dialogClass:'My Class',
modal: true,
hide: { effect: 'fade', speed: 'fast' },
show: { effect: 'fade', speed: 'fast' },
closeOnEscape: true,
closeText: 'Close',
beforeClose: function(event, ui) {
'window.location.reload(true)'
},
});//end dialog
});
$(this).addClass('.deactivated');
$(this).removeAttr('id');
});
});
答案 0 :(得分:8)
从元素中删除ID不会删除绑定在该元素上的任何处理程序(除非您使用了“事件委托”)。
使用.one
(而不是.on
或过时的.bind
)绑定点击事件,然后在第一次触发后自动取消绑定处理程序:
$('#opener').one('click', ...)
或者在点击处理程序中禁用该事件:
$('#opener').on('click', function() {
...
$(this).off('click').addClass('.deactivated');
});
注意:最好始终使用较新的.on
(或.one
)和.off
函数,而不是.bind
或.click
等。它使事件处理代码更加一致,并避免混淆.click
如何用于注册事件处理程序或(无参数)触发事件处理程序。
答案 1 :(得分:4)
<强>描述强>
.one(),将处理程序附加到元素的事件。处理程序是 每个元素最多执行一次。
$('#opener').one('click',function(){
//your code
});
答案 2 :(得分:2)
您可以使用.one()
函数设置一个仅触发一次的事件处理程序,然后将其自行删除:
$('#opener').one('click', function(event) {
// your code here
});
答案 3 :(得分:2)