jQuery UI对话框只打开一次

时间:2015-02-08 01:47:36

标签: jquery jquery-ui

每个对话框只打开一次,之后没有任何反应。我已经搜索了一段时间,这里有一些答案,但老实说,我不理解它们。 (我对jQuery和jQuery UI都很陌生)所以你能给我的任何帮助都会很棒!

http://jsfiddle.net/bf44crt0/

$('.prdDetails').click(function() {
        $(this).next('#prdDetails').dialog({
            draggable: false,
            height: 100,
            modal: true,
            resizable: false,
            width: 100
        });
        return false;
    });

谢谢你的时间!

1 个答案:

答案 0 :(得分:1)

问题出在那一行:

$(this).next('#prdDetails').dialog({

对话框在打开后会改变其位置,因此它不再是next()的开场白。

您应该使用唯一 id来识别对话框。

<强> HTML:

<a class="prdDetails" data-dialog="#d1">Dialog 1</a>
<div id="d1" class="hidden">This Is Dialog 1</div>

<a class="prdDetails" data-dialog="#d2">Dialog 2</a>
<div id="d2" class="hidden">This Is Dialog 2</div>

<a class="prdDetails" data-dialog="#d3">Dialog 3</a>
<div id="d3" class="hidden">This Is Dialog 3</div>

<强>脚本:

$('.prdDetails').click(function(e) {
    e.preventDefault();
    $($(this).data('dialog')).dialog({
        draggable: false,
        height: 100,
        modal: true,
        resizable: false,
        width: 100
    });
});

JSFiddle (打开控制台以了解对话框中发生了什么,以及为什么不能使用next()