我很难用jQuery建立电子商务车模块。 比方说,如果我写在HTML中的标签是这样的:jQuery点击事件处理程序附加到DOM元素
<div class="add-to-cart">+</div>
,然后在我的应用程序的目标是:
this.$products,
this.$pa,
this.$ip,
this.$products = $('.shopperProducts'),
this.$pa = this.$products.find('.shopperAdd');
var self = this;
this.$ip = function() {
var init = function(action, product) {
/.../
};
self.$pa.on('click', function(event) {
event.preventDefault();
init('add', this);
});
};
这种方法是可行的,同时,因为它们显示即时显示产品通过PHP页面刷新,所以我有所有的+
在html上生成的PHP链接。
问题是在结帐文件,这是当我显示整个购物车充满产品的页面,购物车必须在jQuery和AJAX中生成和处理。
我向您展示的代码并不适用于购物车页面,因为这些链接是通过jQuery将每个产品附加到DOM中的。
我一直在研究可能的方法,并没有几个,最有利于为做到这一点:
$(document).on('click', self.$pa, function(event) {
与解决方案的问题是,它也被认为是避免实践中,由于高资源漏,我可以看到执行时间myselfe的差异,在低端设备上需要很长时间。有没有可以使用的一些巧妙的技巧或在这种情况下被认为是很好的做法的方法?
< --- EDIT(溶液)--->
调用的相反:
this.$products = $('.shopperProducts'),
this.$pa = this.$products.find('.shopperAdd');
上开始,我必须调用它元件i之后装入DOM然后他们成为可定位的,然后我只需要使用self.$ip();
和事件处理程序可以附加。没有使用任何解决方法,解决方案只是改变执行命令的顺序。
你不知道整个应用程序的结构,使“自我”不做任何事情的陈述。它的确如此。我只复制了足够的代码,因此可以回答我的问题。如果你很好奇,我提供了更多的代码来澄清使用'self'和不同的解决方案来解决我的问题。 – Mevia 2014-11-23 11:27:01