2014-02-18 111 views
0

我工作的一個應用程序,需要打開一個modal,讓用戶填寫一些細節,並將它們保存他們點擊該按鈕,模式我已經指定。我已經使用jQueryon綁定一個click事件的按鈕。問題在於模式打開時觸發的點擊事件。引導模式對話框按鈕單擊事件觸發模式開

模式的相關部分:

<div class="modal-footer"> 
<a href="#" class="btn" data-dismiss="modal">Close</a> 
<a href="#" class="btn btn-primary" id="save-event">Save Event</a> 

我在哪裏綁定事件:

$('#save-event').on(
'click', 
function(evt) 
{ 
    console.log('triggered'); 
} 
); 

控制檯顯示 '觸發' 當我打開對話框。我打開對話框:

<a href="#add-event-modal" role="button" class="btn" data-toggle="modal">{% trans "Event also occurs on" %}</a> 

它的Django應用程序,所以大括號。任何想法我可能做錯了什麼或者是否有另一種方式來執行一些邏輯,一旦用戶點擊相關的按鈕?

+1

你有任何聯繫,也可以與您的代碼小提琴。沒有這個,很難弄清楚問題。 – comrade

+0

忽略我剛給的答案,我誤解了你的問題。 –

+0

下面是代碼,http://jsfiddle.net/czACy/1/小提琴,但我不能重現您提到的錯誤。 – Chris

回答

4

你可能得了在HTML和你2個元素具有相同id在點擊其他元素時觸發事件。

+1

這解決了它。我有兩個具有相同ID的元素,保存事件,一個是模式按鈕。重命名其中一個解決了這個問題。 – lenny

0

嘗試添加以下到您的jQuery代碼:

evt.stopPropagation(); 

對不起,應該澄清,這增加了代碼觸發模式開放。

編輯:,因爲你不必模態直接訪問代碼,嘗試在jQuery的以下內容:

$('#add-event-modal').on('click', function(evt) { 
    evt.stopPropagation(); 
}); 
+0

的模式正在被{% trans "Event also occurs on" %}觸發。與模式相關的唯一JS是上面的點擊事件。 – lenny

+0

請參閱編輯可能的解決方案。還有一些其他JS開始創建模式,HTML本身不會這樣做。它大概內置在你的框架中,所以你不會直接意識到它。這當然不是一個有保證的解決辦法,但我相信我後來遇到了類似的問題,並以類似的方式解決了這個問題。 – Skrivener