1

我的目标是让用户点击一个标志链接并弹出一个对话框供用户输入一些文本来解释情况。我不完全确定我应该如何设置它,以便标志链接只拉出连接到被标记的帖子的对话框。这是我到目前为止所拥有的:

jQuery:

$(document).ready(function() {

    $(".flagDialog").dialog({ 
        autoOpen: false,
        resizable: false,
        width: 550      
             });

    $(".flag").click(function() {
        var target = $(this);
        $(".flagDialog").dialog( "open" );
        $(".flagDialog").dialog("widget").position({
           my: 'left top',
           at: 'left bottom',
           of: target
        });
    });
});

HTML:

while($row = mysql_fetch_assoc($result)) {
     extract($row);

     <div class='flag'>Flag</div>
     <div class="flagDialog" title="Flag">
        <form action="flag.php" class="flagForm" method="post">
             <textarea name="flag_input" class="flagInput" rows="6" cols="55"><?php echo $username; ?></textarea>
         </form> 
     </div>
   }

目前,当我单击任何标志链接时,所有已退出的对话框都抛出了 while 循环弹出窗口,这是有道理的,我只是不确定应该如何区分它们并在jQuery 方面。

4

2 回答 2

0

您必须以某种方式为标志提供有关其自身的更多信息,生成标志-div 的行将看起来像这样:

 <div class="flag" alt="<?php echo $row->ID; ?>">Flag</div>

您只需将有关标志的信息存储在 div 的 alt-Attribute 中

在 jQuery 中,您可以像这样引用 alt-Attribute:

$(".flag").click(function() {
    var alt = $(this).attr("alt"); //Do something with it.
于 2013-02-18T11:17:16.537 回答
0

您需要分别识别每个“标志”和对话框(通过 ID、类或其他属性)

或者

如果您的代码 HTML 看起来像您的示例,您可以使用next() 选择器

$(".flag").click(function() { 
    $(this).next('div.flagDialog').dialog( "open" );
    $(this).next('div.flagDialog').dialog("widget").position({
       my: 'left top',
       at: 'left bottom',
       of: $(this)
    });
});
于 2013-02-18T11:27:54.757 回答