私は、当社が開発した独自の電子商取引プラットフォームを開発中です。私はフロントエンドの開発に厳密に関与しています。デフォルトのJavascriptイベントとJqueryの対話
ショッピングカートの多くは、インラインJavaScriptイベントを利用してデータをデータベースに送信しています。私は近い将来Jqueryにインライン・ジャバスクリプトを変換する予定ですが、現在はそのままです。
私が持っている特定の問題の1つは、カート内の各広告申込情報で繰り返される「カートからアイテムを削除」アイコンです。私はちょうどにユーザーを求めて、この「カートからアイテムを削除」アイコンをクリックしたときにポップアップするためにjQueryのダイアログボックスを追加
document.SPI_KitFormName.SPI_KitOrdQtyFieldName.value='DEL';
document.SPI_KitFormName.Action.value='Recalc_Kit';
:javascriptのカートからアイテムを削除するには、バックエンドDelphiのコードを利用していますイベントのインラインがあります確認してください。ダイアログボックスに「アイテムの削除」と「キャンセル」ボタンを追加しました。
私が遭遇した問題は、アイコンがクリックされたときに、インラインの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');
});
});
ありがとう:
は、ここに私の現在のコードです。私は、これはあなたがそれを提出したいときにtrueに設定し、その後、提出からフォームを防ぐことになると思い
currentForm.submit = function(){
return false;
}
:
'.preventDefaul()'呼び出しは、属性ベースのイベントハンドラとは関係ありません。これは* browser *のデフォルトアクションを防ぐためのものです。このようなケースでは、イベントハンドラの順序を制御することはほとんどありません。 – Pointy
インラインJavaScriptを今すぐ変換してみませんか?最初の場所で正しく動作させるのではなく、この相互作用をハッキングするために余分な時間と労力を費やすようです。 –