アラートが呼び出されるまで正常に動作する jQuery イベントがあります。この関数は、カートにアイテムを追加する (データベースに行を挿入する) スクリプトをサーバー上で呼び出します。カートには 8 個のアイテムしか入れられないため、ユーザーが 9 番目のアイテムを追加しようとすると、それは許可されていないというメッセージが jQuery スクリプトに返されます。jQueryスクリプトは次のとおりです。
jQuery(document).on('click', 'a.add.module, a.remove.module', function(e) {
if (blnProcessing == true) {
return false;
} else {
blnProcessing = true;
}
e.preventDefault();
objLink = jQuery(this);
strLink = objLink.attr('href');
if (objLink.hasClass('add')) {
objLink.text('Adding');
} else {
objLink.text('Wait');
}
jQuery.get(strLink, function(data) {
if (data.success) {
if (data.success != true) {
alert(data.success); // message that says this is not allowed -- this part stops the script from functioning further
} else {
// this part works
jQuery('#cart').load('/study-clubs/modules/cart', function(){
if (objLink.hasClass('add')) {
strNewLink = strLink.replace('add', 'remove');
objLink.attr('href', strNewLink);
objLink.removeClass('add').addClass('remove').text('Added');
} else if (objLink.hasClass('remove')) {
strNewLink = strLink.replace('remove', 'add');
objLink.attr('href', strNewLink);
objLink.removeClass('remove').addClass('add').text('Add');
}
blnProcessing = false;
});
}
} else {
alert(data.error);
blnProcessing = false;
}
}, 'json');
});
通常、この種の動作では、 を使用します$(document).on('click', '#someID', function() ...
。しかし、私はすでにそれを使用しています。イベントリスナーなどを再アタッチする必要がありますか。アラートの後にこれを機能させるにはどうすればよいですか?