首先,不要被长代码所淹没,我只是把它作为参考...我有一个函数在每个评论用户发布上运行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");
});
});
答案 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)