這裏是場景,我的內容是基於一個類異步加載的。所以,如果我有這個類的鏈接ajaxLink它觸發如下:防止多個點擊事件觸發JQuery
$('a.ajaxLink').click(function (e) {
e.preventDefault();
var container = $(this).parents('div.fullBottomContent');
var href = $(this).attr('href');
container.fadeOut('fast', function() {
$.ajax({
url: href,
dataType: "html",
type: "GET",
success: function (data) {
container.html(data);
BindEventHandlers();
container.fadeIn();
$.validator.unobtrusive.parse('form');
},
error: function() {
alert('An error has occurred');
}
});
});
});
所有可愛。現在,在一種情況下我想,所以我已經寫了顯示一個警告用戶confirm
,他們要加載的頁面並失去其所有的變化是:
$('a.addANewHotel').click(function (e) {
if (!confirm('Adding a new hotel will loose any unsaved changes, continue?')) {
e.stopPropagation();
}
});
現在我已經試過return false
,e.preventDefault()
和e.stopPropagation();
但無論第一種方法總是被解僱?我怎樣才能防止額外的點擊事件發射?這是事件順序嗎?
看不出這是相關的,但我的HTML是:
<a style="" href="/CMS/CreateANewHotel?regionID=3&destinationID=1&countryName=Australia" class="button wideBorderlessButton ajaxLink addANewHotel">Add a new hotel</a>
什麼是你的HTML是什麼樣子? – Asciiom
我不認爲HTML有任何阻礙,但無論如何加入 – Liam
我不明白你爲什麼要通過綁定2個不同的事件到一個相同的元素。我只是顯示/不顯示確認消息,取決於哪個元素被點擊,但所有內部相同的點擊事件(例如使用hasClass if) – Th0rndike