jQuery onclick必须点击两次以显示弹出窗口,为什么?
问题描述:
嗨我有两个相关的问题,我创建了一个弹出框,点击链接后出现,但你必须点击两次出现,我不知道为什么?jQuery onclick必须点击两次以显示弹出窗口,为什么?
此外,我可以收集被点击的链接的ID,然后从数据库中检索相应的信息,但是如果我点击另一个链接,它仍然显示第一个链接信息。我认为我需要做的是在盒子关闭时清空id变量,但是我已经尝试过大量的东西,我不知道如何做到这一点呢?
任何帮助,将不胜感激的代码如下所示,
<script type="text/javascript">
var myCallback = function(caller){
var linkID = caller.id;
caller.rel ="gb_page_center[1020, 550]";
caller.href = "species/butterfly.php?linkID="+linkID;
var calling = caller.href;
$(document).ready (function() {
$('.descript').click(function(event) {
$('#popup').css('display','block');
$('#popup').empty();
$('#popup').load(calling);
})
});
}
</script>
链接低于:
<span id="11" class="bluebells descript" title="Bluebells (click me)" onclick="myCallback(this);" ></span>
谢谢!
答
您的第一次点击是实际绑定click()
事件,请尝试在您的jQuery click
中执行所有操作,并删除您范围内的onclick
属性。
$(document).ready(function() {
$('.descript').click(function(event) {
var linkID = this.id;
this.rel = "gb_page_center[1020, 550]";
this.href = "species/butterfly.php?linkID=" + linkID;
var calling = this.href;
$('#popup').css('display', 'block');
$('#popup').empty();
$('#popup').load(calling);
});
});
<span id="11" class="bluebells descript" title="Bluebells (click me)"></span>
答
您正在重写函数中的click()
事件$('.descript').click(...
这会导致事件触发多次(绑定的次数)。
答
在您的回调“myCallback”中,您正在向跨度添加另一个点击事件侦听器。每次连续点击都会导致另一次额外的呼叫。
三江源与其说这完美的作品,使这么多的意义,我有一种倾向,以在复杂的事你救了我很多时间,谢谢! – 2011-05-05 18:07:09