繁体   English   中英

While循环div没有反应

[英]While-loop divs not reacting

我有一个使用while循环创建的div列表

while($row = mysql_fetch_array($result)){
$output = "<div id='drag'>$row[id] - $row[name] - $row['email']</div>";
echo $output;}

当我尝试使这些div突出显示几秒钟时。 只有第一个div似乎有反应。

$("#drag").effect("highlight", {}, 2000);

是否有任何策略可以以这种方式突出显示所有输出? 有没有一种方法可以使某个div或多个div突出显示?

根据定义,ID必须唯一。 您可以改用类。

while($row = mysql_fetch_array($result)){
    $output = "<div class='drag'>$row[id] - $row[name] - $row['email']</div>";
    echo $output;
}

然后...

$(".drag").effect("highlight", {}, 2000);

id用于赋予div唯一ID。 因此,在while循环中,您在循环中为所有div提供了相同的ID。 这就是为什么当您尝试突出显示时,它会影响第一格。

试试这个代码:

while($row = mysql_fetch_array($result)){
    $output = "<div class='drag'>$row[id] - $row[name] - $row['email']</div>";
    echo $output;
}

之后将效果应用于该类拖动

$(".drag").effect("highlight", {}, 2000);

希望它能对您有所帮助:)

不允许在具有相同ID的页面中使用多个项目,尽管它可能在某些用例中可行,但会在其他用例中引起问题(如您所见)。 通常,除非需要ID,否则您将要使用类。 我还建议您像使用id(即,更多元素)那样更清楚地指定选择器。

对于我自己的代码,我倾向于将id用于页面主体(即,它是哪个页面)以及页面上的不同元素(页眉内容,主要内容,右栏内容,页脚内容)。 我很少在其他任何地方使用id(尽管已经知道会发生这种情况)。

一旦将其切换到一个类,就可以轻松更改JS以执行类似的操作

$("div.drag").effect("highlight", {}, 2000);

如果可能的话,在div.drag路径中添加更独特的内容,以免影响到您在进行此操作时未考虑/编写的页面的其他部分。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM