您好我正在使用一个名为CodeIgniter的框架及其MVC示例。我需要一个弹出框,它会显示一个应用程序的子值,但是每次我回显它时,我的对话框都不起作用。但是你看我需要为不同的值循环对话框。我的代码在下面
<?php
foreach($people as $row){
echo"<div id='dialog' title='Basic dialog'>".$row->app_name."</div>";
echo "<button id='opener'>".$row->app_name."</button>";}
?>
我的javascrip代码来自jquery
<script>
$(function() {
$( "#dialog" ).dialog({
autoOpen: false,
show: {
effect: "blind",
duration: 1000
},
hide: {
effect: "explode",
duration: 1000
}
});
$( "#opener" ).click(function() {
$( "#dialog" ).dialog( "open" );
});
});
</script>
答案 0 :(得分:0)
使用事件委托
$(document).on("click" , "#opener" ,function() {
$( "#dialog" ).dialog( "open" );
});
答案 1 :(得分:0)
更新代码如下:
<?php
$i = 1;
foreach($people as $row){
echo"<div id='dialog". $i."' title='Basic dialog'>".$row->app_name."</div>";
echo "<button id='opener". $i."'>".$row->app_name."</button>";
?>
<script>
$(function() {
$( "#dialog<?php echo $i?>" ).dialog({
autoOpen: false,
show: {
effect: "blind",
duration: 1000
},
hide: {
effect: "explode",
duration: 1000
}
});
$( "#opener<?php echo $i?>" ).click(function() {
$( "#dialog<?php echo $i?>" ).dialog( "open" );
});
});
</script>
<?php
$i++;
}
?>
基本上会有多个弹出窗口,你需要为每个弹出窗口和按钮提供唯一的ID。
答案 2 :(得分:0)
在这种情况下使用 id 并不是一个好主意...你应该将id改为 class
echo "<button class='opener'>".$row->app_name."</button>";
然后
$( ".opener" ).click(function() {
$( "#dialog" ).dialog( "open" );
});
id是唯一的,您应该使用类
享受:)