0

我有一个选择框。在更改时,我会触发一个警报。

我的页面显示不同产品的网格,每个产品都有相同的选择框。我使用 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;    
}
4

2 回答 2

0

由于元素是动态创建的,因此您需要在事后绑定事件。

于 2013-01-24T12:18:13.057 回答
0

如果您从 Ajax 请求加载产品,它们会在操作之后附加到页面$(document).ready()$(document).ready()触发时,从 Ajax 请求中检索的产品不在页面上。

然后,每次调用“loadProducts”Ajax 请求时,都需要将操作重新绑定到来自 Ajax 请求的“comming”新选择元素。

于 2013-01-24T12:18:33.860 回答