Jquery 如何干掉一些代码
假设在一个电子商务网站上,有两种方式添加一个项目,一种是从目录中添加,另一种是从购物车中添加Jquery 如何干掉一些代码,jquery,dry,Jquery,Dry,假设在一个电子商务网站上,有两种方式添加一个项目,一种是从目录中添加,另一种是从购物车中添加 <btn class="add_item" data-type="cart"></btn> <btn class="add_item" data-type="catalog"></btn> 方案B $(".add_item").click(function() { if ($(this).data("type") == "cart") { d
<btn class="add_item" data-type="cart"></btn>
<btn class="add_item" data-type="catalog"></btn>
方案B
$(".add_item").click(function() {
if ($(this).data("type") == "cart") {
doSomethingUniqueToCart();
} else {
doSomethingUniqueToCatalog();
}
doSomethingSharedToAdd();
})
我为您提供了选项C:
var functionList = {
"cart":doSomethingUniqueToCart,
"catalog":doSomethingUniqueToCatalog
}
$(".add_item").click(function() {
functionList[$(this).data("type")]();
doSomethingSharedToAdd();
});
一般来说,附加特定侦听器比附加一般侦听器更有效,并且必须查询信息以区分案例。我可能会这样做
$(".add_item[data-type='cart']").click(doSomethingUniqueToCart);
$(".add_item[data-type='catalog']").click(doSomethingUniqueToCatalog);
$(".add_item").click(doSomethingSharedToAdd);
$(".add_item[data-type='cart']").click(doSomethingUniqueToCart);
$(".add_item[data-type='catalog']").click(doSomethingUniqueToCatalog);
$(".add_item").click(doSomethingSharedToAdd);