我有一个选择框。在改变时,我有一个触发的警报。
我的页面显示不同产品的网格,每个产品都有相同的选择框。我使用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;'> £". $row['Products_Cost'] ." (". $row['Products_Size'] .")</td></tr>";
}
}
return $rtn;
}
答案 0 :(得分:0)
由于元素是动态创建的,因此您需要在事后绑定事件。
答案 1 :(得分:0)
如果您是从Ajax请求加载产品,则会将其附加到 AFTER $(document).ready()
操作页面。触发$(document).ready()
时,页面上的Ajax请求检索的产品不是。
然后,每次调用“loadProducts”Ajax请求时,都需要将操作重新绑定到从Ajax请求“提交”的新select元素。