我的对话框处于for循环中。
每次单击按钮,即使只单击一个按钮,也会显示每个按钮的所有对话框。
我该怎么办才能出现一个对话框?
谢谢!
以下是我的代码。
HTML CODE
<?php
foreach($people as $row){
echo "<div class=dialog title='Basic dialog'>".$row->app_name."</div>";
echo "<tr><td><button class='opener' name=name[]>".$row->app_name."</button></td></tr>";
$x=$x+1;
}
?>
来自jqueryui.com的jquery
$(function() {
$( ".dialog" ).dialog({
autoOpen: false,
show: {
effect: "blind",
duration: 1000
},
hide: {
effect: "explode",
duration: 1000
}
});
$( ".opener" ).click(function() {
$( ".dialog" ).dialog( "open" );
});
});
答案 0 :(得分:0)
而不是
$( ".opener" ).click(function() {
$( ".dialog" ).dialog( "open" );
});
试试这个
$( ".opener" ).click(function() {
$(this).parents("tr:first").prev().dialog( "open" );
});
您也可以使用下面的closet():
$( ".opener" ).click(function() {
$(this).closest('.dialog').dialog( "open" );
});
答案 1 :(得分:0)
如何解决它是一个偏好问题。这是另一个:
<?php
$x = 1; // count from 1
foreach($people as $row){
echo "<tr><td>";
echo "<button class='opener' name=name[] data-target='#dialog-$x'>".$row->app_name."</button>";
echo "<div class=dialog title='Basic dialog' id=dialog-$x>".$row->app_name."</div>";
echo "</td></tr>";
$x++; // will increase x with 1
}
?>
JS:
$(".opener").click(function() {
var target = $(this).data('target');
$(target).dialog('open');
});