我最近第一次使用JQuery并遇到了问题。我有很多相同锚的副本打开一个对话框,问题是当我点击其中任何一个时,对话框打开的副本数量与锚点一样多。
代码看起来像这样
脚本:
$(document).ready(function(){
$('div#dialogbox').dialog({
autoOpen: false
});
$('#opener').click(function(){
$('div#dialogbox').dialog('open);
});
});
对话框:
<div id="dialogbox">
<p>Sample text</p>
</div>
锚:
<a href="#" id="opener">Click Me</a>
答案 0 :(得分:2)
尝试用类似的东西替换它
<a href="#" class="opener">Click Me</a>
和你的JS
$(document).ready(function(){
var popup = $('div#dialogbox').dialog({autoOpen: false});
$('.opener').click(function(){
popup.dialog('open);
});
});
你只想在同一个页面上有一个ID,如果你需要多个,那么你应该使用一个类。
答案 1 :(得分:0)
var popup;
$(document).ready(function(){
popup = $('div#dialogbox').dialog({
autoOpen: false});
$('.opener').click(function(){ popup.dialog('open); });
});
如果这样可以解决您的问题,那么您将需要遵循var的一些最佳实践,但只需快速查看是否可以解决问题
也会遵循其他答案中的其他建议并从ID更改为类,请注意确定这是否是您的问题,但您不应该有多个具有相同值的ID
<a href="#" class="opener">Click Me</a>
另外请确保您只有一页弹出页面