我正在開發我們公司開發的專有電子商務平臺。我嚴格參與前端開發。默認Javascript事件&Jquery互動
不幸的是,很多購物車正在使用內嵌javascript事件將數據發佈到我們的數據庫。我計劃在不久的將來將內聯javascript轉換爲Jquery,但現在它們仍然存在。
我遇到的一個特定問題是在購物車中每個訂單項上重複的「從購物車刪除商品」圖標。有JavaScript事件多數民衆贊成利用後端Delphi代碼從購物車中刪除項目內聯:
document.SPI_KitFormName.SPI_KitOrdQtyFieldName.value='DEL';
document.SPI_KitFormName.Action.value='Recalc_Kit';
我只是增加了一個jQuery的對話框彈出時,這種「從購物車中刪除項目」點擊圖標,讓用戶確認。我在對話框中添加了「刪除項目」和「取消」按鈕。
我遇到的問題是,當圖標被點擊時,內嵌JavaScript事件會在對話框jquery之前運行。我明白了。所以,我添加了我的jQuery代碼e.preventDefault()
,以防止內嵌JavaScript首先運行。問題是,當我點擊對話框中的「刪除項目」按鈕時,我不知道如何重新啓用它。
這裏是我當前的代碼:
var currentForm;
$(function() {
jQuery('#confirm-itemdelete').dialog({
autoOpen: false,
height: 160,
modal: true,
resizable: false,
buttons: {
'Delete Item': function() {
$(this).dialog("close");
$(".deleteitembutton a").die('click');
currentForm.submit();
},
'Cancel': function(){
$(this).dialog("close");
}
}
});
$('.deleteitembutton a').live('click', function(e) {
currentForm = $(this).closest('form');
e.preventDefault();
$('#confirm-itemdelete').dialog('open');
});
});
感謝您的幫助,您可以提供。
'.preventDefaul()'調用與基於屬性的事件處理程序沒有任何關係。這是爲了防止*瀏覽器*默認操作。在這種情況下,您對事件處理程序排序沒有太多的控制權。 – Pointy
爲什麼不現在轉換你的內聯JavaScript?看起來你會花費額外的時間和精力來繞開這種互動,而不是讓它在第一時間正確地工作。 –