JQuery UI对话框 - 只有第一个链接有效

时间:2012-05-09 02:16:56

标签: php jquery mysql html-table jquery-ui-dialog

我有一个特定供应商的产品列表,显示在<table>中,填充了我的mysql数据库中的数据。

在此表中,每个产品都有一个链接,单击该链接时,应在ui对话框<div id = "detalhe_produto"></div>中显示产品详细信息。该对话框确实打开,但它仅适用于列表中的第一个项目。以下行的其他链接不会打开对话框。

任何人都可以帮助我吗?

这是我用来打开ui对话框的脚本:

<script type="text/javascript">
$(function(){ 

 $('detalhe_produto').click(function(){ 

     var selectedVal=$("#detalhe_produto").val(); 
     var url="produto_detalhe.php?codigo="+selectedVal; 

        var dialog = $("#detalhe_produto"); 
        if ($("#detalhe_produto").length == 0) { 
            dialog = $('<div id="detalhe_produto" style="display:hidden"></div>').appendTo('body'); 
        } 
        dialog.load( 
            url, 
            {},
            function (responseText, textStatus, XMLHttpRequest) { 
                dialog.dialog({                        
                    close: function (event, ui) {                             
                        dialog.remove(); 
                    }, 
                    modal: true, 
                    width: 460 
                }); 
            } 
        ); 
    });  

});
</script>

然后是代码表:

<table border="0" cellpadding="0" cellspacing="3">
  <?php do { ?>
    <tr>
      <td align="left" valign="top" class="lista_produto"><a href="#<?php $_SESSION['codigo_produto'] = $row_lista_produtos['codigo']; $_SESSION['produto'] = $row_lista_produtos['produto']; ?>"><?php echo $row_lista_produtos['codigo']; ?></a></td>
        <td width="15"></td>
    </tr>
    <?php } while ($row_lista_produtos = mysql_fetch_assoc($lista_produtos)); ?>
</table>

我尝试将href="#"更改为href="javascript: void (0)" 结果是一样的。

建议?

2 个答案:

答案 0 :(得分:2)

如果您有许多可以单击打开的不同对话框,则需要使用类选择器.而不是ID选择器#。您可能也忘记了#

所以不要这样:

var dialog = $("#detalhe_produto"); 

这样做:

var dialog = $(".detalhe_produto"); 

* *请参阅此jsfiddle http://jsfiddle.net/trpeters1/uFDdb/2/

它有一个jqueryUI对话框的完整工作演示,用于特定于您的用例的多个对话框。意思是,对话框显示特定于单击链接的值。

答案 1 :(得分:1)

您错过了#

中的$('detalhe_produto').click(function(){