我很難用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