帮助pregreplace和uniqid用于jquery对话框

时间:2010-04-11 05:33:59

标签: php jquery

首先,不要被长代码所淹没,我只是把它作为参考...我有一个函数在每个评论用户发布上运行preg_replace并将匹配放在jquery对话框中,并且匹配open-链接。例如,如果有一个带有两个匹配的段落,它们将被放入两个div中,并且一个jquery对话框函数将被回显两次;每个div一个。   

虽然这适用于一场比赛,但如果有多场比赛,则不会。我不确定如何在每个div和匹配对话框打开脚本的某个时间点分发唯一ID。请记住,我删除了preg替换功能,因为它使问题复杂化。如果有人有任何想法,他们将不胜感激。

<?php
    $id=uniqid();
    $id2=uniqid();

    echo "<div id=\"$id2\">
      </div>";
?>   
     $.ui.dialog.defaults.bgiframe = true;
     $(function() {
      $("<?php echo"#$id2"; ?>").dialog({hide: 'clip', modal: true
    ,width: 600,height: 350,position: 'center',
    show: 'clip',stack: true,title: 'title', minHeight: 25,
    minWidth: 100, autoOpen: false});

       $('<?php echo"#$id"; ?>').click(function() {
       $('<?php echo"#$id2"; ?>').dialog('open');
      })
      .hover(
       function(){ 
        $(this).addClass("ui-state-hover"); 
       },
       function(){ 
        $(this).removeClass("ui-state-hover"); 
       }
      ).mousedown(function(){
       $(this).addClass("ui-state-active"); 
      })
      .mouseup(function(){
        $(this).removeClass("ui-state-active");
      });
     });

2 个答案:

答案 0 :(得分:2)

您是否尝试过类似的功能,只显示一次功能。

<?php    
    echo "<div class="dialog"></div>";
?>   
$(document).onload(function() {
     $.ui.dialog.defaults.bgiframe = true;
     $(function() {
      $(".dialog").dialog({ /* ... */

编辑(再次)

Some Text
<a href="" class="open">Open Dialog 1<span class="box">Dialog Content 1</span></a> - 
<a href="" class="open">Open Dialog 2<span class="box">Dialog Content 2</span></a> - 
<a href="" class="open">Open Dialog 3<span class="box">Dialog Content 3</span></a>
ABC 123

$(".dialog").dialog({
    hide: "clip",
    modal: false,
    width: 600,
    height: 350,
    position: "center",
    show: "clip",
    stack: true,
    title: "title",
    minHeight: 25,
    minWidth: 100,
    autoOpen: false,
    bgiframe: true
});
$("a.open").click(function() {
    $(".box").eq($(this).index()).dialog("open");
    return false;
});

经过测试和工作。问题是,当JQuery替换对话框时,它不会处于相同的位置。检查点击来自哪个索引将与您尝试打开的对话框匹配。

答案 1 :(得分:0)