第一次尝试jQuery点击事件失败
问题描述:
我有一个函数绑定到我的onClick为特定的类。该功能似乎没有在第一次尝试时触发,但在此之后正常工作。奇怪的是,我在脚本中的警报每次都有效,所以我无法弄清楚为什么其余的函数失败。第一次尝试jQuery点击事件失败
$(document).ready(function() {
// capture original link and asset name on click
$("a.dggate").bind("click", function() {
window.tempURL = $("a.dggate").attr("href");
window.assetTitle = $("a.dggate").attr("title");
strAsset = assetTitle;
alert("click " + knownUser);
if (knownUser != true) {
//alert(tempURL);
$("a.dggate").fancybox({
// choose which form to display
href: "http://www.domain.com/",
type: 'iframe',
scrolling: 'no',
width: "60%",
height: "100%",
titleShow: false
});
} else {
// send blind form if user is known
bFormSubmit();
return false;
}
}); // click
}); // ready
任何帮助,将不胜感激。
答
尝试写
$("a.dggate").click(function (e) {
e.preventDefault();
的而不是 “绑定” 行,似乎工作。
+0
这解决了这个问题。我认为Barmar在向课程分配fancybox是正确的,但是,这个函数实际上是覆盖链接的真实href的默认值,因为它是一个外部url,并且还有其他时间与内联页。点击功能似乎保留了原始的href,直到第二次点击链接。非常感谢! – Avebone 2013-02-19 21:45:15
微不足道的问题,但已知用户==真正的第一次点击? – Johan 2013-02-19 20:15:47
可能与您的问题没有关系,但处理程序中的$(“a.dggate”)应该是'$(this)'。否则,它适用于所有类的成员,而不仅仅是你点击的那个(我假设你正在使用一个类,因为可能有多个类)。 – Barmar 2013-02-19 20:19:58
我想你误解了如何使用FancyBox。在元素上调用'fancybox()'不会显示该框,它只是将fancybox的click处理程序绑定到元素。然后下一次点击运行fancybox的处理程序。 – Barmar 2013-02-19 20:30:14