更新:我只是回顾了我的问题,我完全明白它没有意义。累的时候不应该在这里问问题。它现在已被重新编写并提供了可能的解决方案
这就是我想要发生的事情:
- 当用户单击带有类
filter_products
的复选框时,将进行 AJAX 调用。 - 将返回更新的产品列表。
- 更新后的产品列表将替换
UL
类中的内容更新product_list
后product_list
我希望hoverintent事件重新绑定
代码:
<div id="sidebar">
<input class="filter_products" type="checkbox" name="product_options[1]" value="1">
<input class="filter_products" type="checkbox" name="product_options[2]" value="2">
</div>
<div id="main">
<ul id="product_list">
<li class="product">
Product name 1
</li>
<li class="product">
Product name 2
</li>
<ul>
</div>
<script>
// Filter products
$('.filter_products').on('click', function () {
var inputs = $("input:checked");
$.post('/filter_products/' + $('#cat_id').data('cat-id'), inputs.serialize(), function(data) {
$('#product_list').html(data);
});
});
// Hover product is now wrapped in a function
$(".product").hoverIntent({over: getAttributtes, out: hideAttributtes});
function getAttributtes() {
// Do something
}
function hideAttributtes() {
// Do something
}
</script>
这可能是解决方案:
// Filter products
$('.filter_products').on('click', function () {
var inputs = $("input:checked");
$.post('/filter_products/' + $('#cat_id').data('cat-id'), inputs.serialize(), function(data) {
$('#product_list').html(data);
// Re-initialize hoverintent
hoverAttributtes();
});
});
// Hover product
function hoverAttributtes() {
$(".product").hoverIntent({over: getAttributtes, out: hideAttributtes});
}
function getAttributtes() {
// Do something
}
function hideAttributtes() {
// Do something
}
// Initialize hoverintent
hoverAttributtes();