php html所有对话框打开

时间:2014-05-15 06:32:03

标签: javascript php jquery dialog

我的对话框处于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" );
                });
              });

2 个答案:

答案 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');
});