2013-01-24 35 views
0

我有一個選擇框。在更改時,我有一個觸發的警報。jQuery選擇更改後,Ajax分頁不起作用

我的頁面顯示不同產品的網格,每個產品都有相同的選擇框。我使用Ajax進行分頁。當用戶點擊下一頁或選擇不同的類別時,Ajax加載下一批產品。

但是,當它加載產品時,選擇框的onchange事件不再有效。它只適用於第一頁。

任何想法?

onChange事件

$('.cardid').change(function() { 
    alert('changed'); 
}); 

選擇框

// Fill select box for Pictures with basket options 
function picture_details($Products_SKU) { 
    $selector=array("Framed ","Mounted ","Print "); 
    $rtn = ""; 
    $DB = new mysql_db(); 
    $DB->sql_connect(); 
    // Select mounted and print products. Products SKU ends in either M or P 
    $q = "SELECT Products_ID, Products_SKU, Products_Cost, Products_Size FROM products WHERE Products_SKU LIKE '".$Products_SKU."%' ORDER BY Products_ID ASC"; 
    $DB->query($q); 
    if ($DB->get_num_rows()) { 
     $results = $DB->fetch_all_rows(MYSQL_ASSOC, NULL); 
     foreach ($results as $key => $row) { 
      $rtn .= "<tr><th style='width:100px;'>". $selector[$key]. ":</th><td style='width:300px;'> &pound;". $row['Products_Cost'] ." (". $row['Products_Size'] .")</td></tr>";  
     } 
    } 

    return $rtn;  
} 
+2

一些代碼如何,以便我們可以幫助您...... –

+0

沒有看到代碼,首先猜測是您重新創建複選框,並且不會將onchange事件綁定到它們。 –

+0

我已經添加了一些代碼,但不太確定它的正確位數? –

回答

0

如果您正在通過Ajax請求加載您的產品,則會將其附加到頁面後$(document).ready()操作。當觸發$(document).ready()時,從頁面上的Ajax請求檢索的產品不是

然後,每次調用「loadProducts」Ajax請求時,都需要將操作重新綁定到來自Ajax請求的「正在」的新select元素。

+0

所有選擇元素都具有相同的類別。我將嘗試閱讀重新編寫的 –

+0

,您可以將'$('。cardid')。change();'放入名爲'applyChange()'的函數中,在'$(document).ready )'第一效果。然後,在你的Ajax函數成功後,你可以再次調用applyChange()到新的頁面元素。 :) –

0

由於是動態創建的元素,你需要綁定在事後的事件。