DT-DD的对话框

时间:2011-07-07 20:17:41

标签: php jquery jquery-ui

我有一长串DT / DD格式的项目。这是我的PHP

foreach($allnews as $row){
 $row->subject = ucwords($row->subject); 
echo "<dt class=\"row\">$row->date -> $row->subject </dt>";
echo "<dd class=\"show\">$row->news</dd>";
}

这是我的Jquery;

$(function(){
   $('.show').hide(); //hide the DD
   $('.row').click(function(){
        $('.show').dialog({
            width: 400,
            stack: false,
            height: 500               
        });    
    });      
 });

当我解决问题时,我会把它变成一个模态。我的问题是这样的:当我点击我的一个DT时,我会得到一个对话框(打开DD并正确显示)。但是,我得到了数据库中出现的每个项目的对话框。我只想将我点击的行打开到对话框中或很快成为模态

我知道如果我使用“this”,它可能只会选择一行。但是我在哪里使用它? 我将它变成一个模态没有问题,我只想知道如何选择我点击的行

提前谢谢

1 个答案:

答案 0 :(得分:1)

选择者是全球性的。在您的点击功能中,

$('.show').dialog(...)

将完全按照您的要求行事。使用$('.show')类激活所有元素。相反,您希望在单击的元素的上下文中工作。例如

$('.row').click(function() {
    $(this).next('.show').dialog(...);
}

这会将当前单击的'.row'设置为您的this元素,然后找到下一个元素(兄弟),确认它与'.show'选择器匹配,然后运行该对话框。

JSFiddle Demonstration:http://jsfiddle.net/ayv6U/