jQuery - 使用.closest的对话框?

时间:2015-01-07 23:46:08

标签: javascript jquery

我正在尝试使用.closest打开一个对话框,但我似乎无法使其正常工作。

我在这里摆弄它: http://jsfiddle.net/dx2yz8mg/

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

我试过这个:

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

我觉得这样可以,但它不起作用,有没有人有任何想法?

我需要这样做的原因是我动态地提取内容。目前,当您单击第二个.prdDetails时,您会在弹出窗口中看到第一个#prdDetails。

3 个答案:

答案 0 :(得分:1)

认为你应该使用 next 而不是最近的

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

接下来将找到下一个兄弟姐妹,而最近搜索DOM树。

您还应该删除多个ID,并检查是否已经创建了一个对话框以避免在每次单击时实例化它。这样应该是一个完整的解决方案

http://jsfiddle.net/dx2yz8mg/7/

答案 1 :(得分:0)

docs.closest检查元素本身并遍历DOM。

你有这个:

<a class="prdDetails">More Details ></a>
<div id="prdDetails" class="hidden">Stuff</div>

他们是兄弟姐妹,而不是父母/孩子。

顺便说一句,您应该使用&gt;代替>

答案 2 :(得分:-1)

您有width: 774,您必须删除,背后的width