大量相同按钮打开对话框的副本

时间:2014-09-22 13:19:36

标签: javascript jquery html xhtml

我最近第一次使用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>

2 个答案:

答案 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>

另外请确保您只有一页弹出页面