我有一长串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”,它可能只会选择一行。但是我在哪里使用它? 我将它变成一个模态没有问题,我只想知道如何选择我点击的行
提前谢谢
答案 0 :(得分:1)
选择者是全球性的。在您的点击功能中,
$('.show').dialog(...)
将完全按照您的要求行事。使用$('.show')
类激活所有元素。相反,您希望在单击的元素的上下文中工作。例如
$('.row').click(function() {
$(this).next('.show').dialog(...);
}
这会将当前单击的'.row'
设置为您的this
元素,然后找到下一个元素(兄弟),确认它与'.show'
选择器匹配,然后运行该对话框。
JSFiddle Demonstration:http://jsfiddle.net/ayv6U/