多数のリンクのjqueryクリックイベントとMVCビューの1つのドロップダウンセレクターがあり、イベントを実行する前にそれらのデフォルトを防止します。これらのほとんどはビューにリダイレクトされるためです(リダイレクトによってjqueryコードが停止しません) ?)。クリックイベントでのすべてのコールバックの後、リンクとドロップダウンセレクターにデフォルトのイベントを実行させて、何も起こらなかったようにページに表示されないようにします。
すべてのリンク/ドロップダウンをデフォルトに戻し、jqueryでプログラムでクリックする簡単な方法はありますか?私は試してみましたが$(this).click()
、運がありませんでした$(this).submit()
。e.click()
e.submit()
これが私のコードです
$("input,a,select").not("#SubmitButton").click(function (e) {
e.preventDefault();
console.log("prevented default");
deletePreview($(this));
});
function deletePreview(button) {
console.log("clicked");
//Delete Offer from DB
$.post('@Url.Content("~/")Offer/DeleteJoAnnOffer/?offerId=' + offerID, function (data) {
console.log("finished deleting");
if (button.attr('id') == "CancelButton") {
window.location.href = '@Url.Content("~/")Offer/CreateJoAnn/';
} else {
//DO DEFAULT ACTION HERE
}
});
};
[編集]:もう1つの質問:preventDefault()を使用しない場合、jqueryイベントは実行されます(コンソールログが「クリック」されたため、最初の部分です)が、コンソールが原因でjquery投稿が実際に実行されているかどうかを確認できません新しいページで更新されます。