2014-02-18 2 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

Вы могли бы иметь 2 элементов с одинаковыми идентификаторами в HTML и вы запускают событие, когда вы нажимаете на другой элемент.

+1

Это решило это. У меня было два элемента с одним и тем же идентификатором, save-event, один из которых является модальной кнопкой. Переименование одного из них решило это. – lenny

0

Попробуйте добавить следующую строку в ваш код JQuery:

evt.stopPropagation(); 

К сожалению, следует уточнить, добавьте к этому коду инициирующего открытия модального.

Edit:, так как вы не имеете прямой доступ к коду модального, попробуйте следующее в вашем JQuery:

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

Модаль запускается {% trans "Event also occurs on" %}. Единственным JS, относящимся к модальному, является событие щелчка выше. – lenny

+0

См. Править для возможного решения. Существует еще один JS-запуск для создания модального кода, HTML не сделает этого сам по себе. Вероятно, он встроен в вашу структуру, поэтому вы не знаете об этом напрямую. Это, конечно, не гарантированное исправление, но я считаю, что я столкнулся с подобной проблемой некоторое время назад и решил ее аналогичным образом. – Skrivener

Смежные вопросы