2012-08-06 82 views
0

基本上。我有一個JavaScript循環,張貼到一個PHP腳本。在日誌中附加對DIV的響應。響應中有一個按鈕。問題是,當一個新的響應被創建和追加時,jquery按鈕功能會使所有之前添加的按鈕變大。 (可能是因爲它在相同的DIV元素上再次調用jquery button()函數。)有沒有辦法在加載時將button()jquery ui函數應用於按鈕?

有沒有辦法在加載按鈕()時將jquery ui函數應用於按鈕? (而不是將它應用到每個具有相同名稱的元素上?)

此php與以下內容非常相似(但縮短了這一點)。只是爲了讓您瞭解php腳本的作用。

<?php 

    echo "<script type='text/javascript'> 
     function addButton(x) { 
      x = this; 
      $(x).button({    
       icons: {     
        primary: 'ui-icon-alert'      
       } 
      }); 
     } 
     </script><div id='chat_wrap' class='message".$id."' hidden='true'>"; 


if ($query_run = mysql_query($finalchatq)) { 
    if (mysql_num_rows(mysql_query($finalchatq)) > 0) { 
     $counter = 0; 
     $amount = array(); 
     while ($query_rows = mysql_fetch_assoc($query_run)) { 
      $time1 = $query_rows['time']; 
      $time2 = substr_replace($time1, " : ", 10, 1); 
      $time = str_ireplace('.', '/', $time2); 
      $text = str_ireplace('removem', '', $query_rows['text']); 
      $id = $query_rows['id']; 

      if($query_rows['type']=='notice') { 

      echo "<div selectable='false'><div id='date'><div id='notice'>NOTICE:</div>Sent At: ".$time."</div><div id='Nchat_message'><div id='chat_text'>".$text."</div><img id='charhead' src='camperhead.php?id=".$query_rows['who']."' id='charhead'></img></div>"; 
      echo "<div id='controls'>"; 

      if(userIsA('admin')||userIsA('mod')) { 
       echo "<input hidden='hidden' name='idtodel' value='".$id."'></input><input type='button' value='DELETE' id='delete_button'></input>"; 
      } else { 

      } 

      echo "</div></div></div><br/><br/>";   
     } 
     if($query_rows['type']=='normal'){  
      echo "<div selectable='false'><div id='date'><div id='by'>".getUserFieldById($query_rows['who'], 'camper_name').":</div>Sent At: ".$time."</div><div id='chat_message'><div id='chat_text'>".$text."</div><img id='charhead' src='camperhead.php?id=".$query_rows['who']."' id='charhead'></img>"; 
      echo "<div id='controls'>"; 

      if(userIsA('admn')||userIsA('md')) { 
       echo "<button id='delete_button' class='dpp2' onclick='delCom(".$id.")'>Delete</button>"; 
      } else { 
       echo "<button id='report_button' onload='addButton(this)' onclick='reportCom(".$id.")'>REPORT</button>"; 
      } 
    echo "</div></div></div></div></div><br/><br/>"; 
     } 
    } 
    echo "</div>"; 
} 
} 
} 

?> 

我希望我已經明確了我的問題,如果您有任何疑問,請發表評論,我會盡快回復。

+0

是當定義它,Ajax請求或方法,其附加其中回調內做到這一點。 – 2012-08-06 15:31:46

+0

Kevin B,感謝您的快速回復。但是,我不太確定我會怎麼做。如果我說$('#div')。button(),那麼我仍然會遇到以前附加的按鈕會受到影響的問題。如果我將該函數應用於響應,它會將按鈕功能應用於整個消息,這是不對的。 – 2012-08-06 15:34:42

+0

你應該停止使用'mysql_ *'函數。他們正在被棄用。請使用[PDO](http://php.net/manual/en/book.pdo.php)(自PHP 5.1起支持)或[mysqli](http://php.net/manual/en/book)。 mysqli.php)(自PHP 4.1起支持)。如果你不確定使用哪一個,[閱讀這篇文章](http://stackoverflow.com/questions/13569/mysqli-or-pdo-what-are-the-pros-and-cons)。 – Matt 2012-08-06 15:36:37

回答

相關問題