jQuery:只运行一次

时间:2010-11-07 00:39:05

标签: jquery

是的,我有一个fancybox。如果?mode = new

,它会自动打开

在?mode = new上发生了什么:

<script>
$(document).ready(function(){
$('#newPM').click();
});
</script> 

打开正常。但是当你点击元素时,它会一直关闭/打开,因为它被激活了。那么我怎么能只运行一次呢?

2 个答案:

答案 0 :(得分:3)

你的意思是它一直打开和关闭fancybox?你可以做到

$("#newPM").unbind("click"); 

这将删除onclick事件,因此不会再触发它。

答案 1 :(得分:1)

更好的解决方案是重构代码以避免模拟另一个元素的click事件。

模仿人工交互来简化你的代码听起来是个好主意,直​​到你忘记某些东西依赖于那个“点击”处理程序。

你真正感到害羞的是

<script>
$(document).ready(function(){
   'check for url variable: 
   if (urlVar(something)) {
       doSomething();
    }
   $('#newPM').click(doSomething);
});
function doSomething(e) {
 'actionable code here
}
</script> 

这样,您的操作和事件处理程序彼此独立。