您好我有两个相关的问题,我创建了一个弹出框,在单击链接后出现,但是您必须单击两次才能显示,我不知道为什么?
此外,我可以收集被点击的链接的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>
谢谢!
答案 0 :(得分:1)
您正在click()
重新绑定函数内的$('.descript').click(...
事件。这会导致事件多次触发(绑定次数)。
答案 1 :(得分:1)
您的第一次点击是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>
<强> Example on jsfiddle 强>
答案 2 :(得分:0)
在你的回调'myCallback'中,你要向span添加另一个click事件监听器。每次连续点击都会引起另一次额外的通话。