2012-01-08 109 views
1

雖然環的div我有使用while循環沒有反應

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

當我試圖讓這些div強調了幾秒鐘創建的div的列表。 只有第一個div似乎在反應。

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

是否有任何策略使所有輸出以這種方式突出顯示?有沒有辦法讓某個div或div突出顯示?

+0

一個ID就是它所說的 - 一個*標識符*。通過定義身份,多個對象不能具有相同的身份。使用班級,或使您的ID唯一。 – DaveRandom 2012-01-08 16:49:39

回答

5

根據定義,ID必須是唯一的。你可以使用類來代替。

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

則...

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

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); 

希望它會幫助你:)

0

在頁面用相同的多個項目id是不允許的,雖然它可能適用於某些用例,但會導致其他問題(如您所見)。一般來說,除非需要id,否則您需要使用類。我還建議你更明確地指定選擇器,以便使用id(即更多元素)。

對於我自己的代碼,我傾向於爲頁面主體(即,它是哪個頁面)和頁面上的不同元素(頁眉內容,主要內容,右側內容,頁腳內容)使用一個id。我很少會在其他地方使用ID(儘管它已經知道會發生)。

一旦你切換過來的一類,你可以很容易地改變你的JS做這樣的事情

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

如果可能的話,添加更多的東西不同的div.drag路徑,這樣你就不會風當您處理此事時,會影響您沒有考慮/書寫的其他頁面部分。