单击后禁用onclick()

时间:2011-08-05 13:34:17

标签: javascript

我遇到一个JS事件有点麻烦。我有一个调用onclick事件的链接,它会在弹出模式窗口中打开一张照片 - facebox。

当用户单击链接时,附加到该链接的图像文件名将传递到模态窗口,但是如果用户双击图像文件,则会在模态窗口中打开两次。

我尝试过一个简单的ondblclick =“”和ondblclick =“return false”来停止此操作,但似乎浏览器仍将其解释为2个单独的onclick()事件。

有人可以提出修复或解决方案,以便在第一次点击后暂时禁用该链接吗?

以下是调用该事件的代码:

<a href="javascript:void(0);" onmouseover="setVisibility(\'deletephotodiv'.$do.'\', \'block\');" onmouseout="setVisibility(\'deletephotodiv'.$do.'\', \'none\');" ondblclick="parent.jQuery.facebox({ ajax: \'profile/previewphoto.inc.php?photo=',$_SESSION['images'][$do]['name'],'&album=',$_SESSION['images'][$do]['albumname'],'\' }); ">

提前致谢

韦恩

2 个答案:

答案 0 :(得分:2)

请参阅jQuery unbind。 http://api.jquery.com/unbind/

或使用布尔变量从函数返回。 第一次单击时将其设置为True,在下次单击时,函数将返回,因为变量已设置为true。 例如

var firstDone = false;
function myClickHandler()
{
   if(firstDone === true)
         return;
   /* here is some work */
   alert(123);
   firstDone = true ;
}

答案 1 :(得分:0)

如果你正在使用jQuery,你也可以考虑使用http://api.jquery.com/one/,当你使用jQuery时,请避免编写像onmouseover这样的代码,使用jquery来完整并将事件绑定到超链接并提供一些超链接到href而不是javascript:void(0);