2013-11-22 2 views
1

Я использую Bootstrap2.3.2,Bootstrap модальный передачи данных

function showmodal(arg1){$('#myModal').modal({keyboard:true,backdrop:'static'}); 
$('#myModal').on('hidden',function(){ 
    alert(arg1); 
});} 

function function1 {showmodal("one");} 

function function2 {showmodal("two");} 

Когда я называю function1(), модальный будет открывать и закрывать этот модальный «один» предупредительное сообщение будет приходить. После того, как я позвоню function2(), мода будет открыта и закрыта, этот модальный «один» будет первым предупреждением, а «два» - вторым предупреждением. проблема заключается в том, что в функции будет появляться предупреждение. Мне нужно удалить первое предупреждение во втором вызове функции.

ответ

0

Вы можете сохранить аргумент функции в качестве данных в элементе.

Затем вам нужно выйти слушатель события, или вы будете связывать несколько событий, к тому же модальный:

function showmodal(arg1) { 
    $('#myModal').data('arg', arg1).modal({ 
    keyboard:true, 
    backdrop:'static' 
    }); 
} 

$('#myModal').on('hidden',function(){ 
    alert($(this).data('arg')); 
}); 

function function1 {showmodal("one");} 

function function2 {showmodal("two");} 

В качестве альтернативы, отвязать слушателя событий перед переплетом новый:

function showmodal(arg1){$('#myModal').modal({keyboard:true,backdrop:'static'}); 
$('#myModal').off('hidden').on('hidden',function(){ 
    alert(arg1); 
});} 
+0

Большое спасибо. Он отлично работает. – user3021293

0

jQuery имеет опрятную функцию с именем one, которая позволяет привязывать обработчик событий, который будет вызываться не более одного раза для каждого элемента на событие:

function showmodal(arg1) { 
    $('#myModal').modal({keyboard:true,backdrop:'static'}); 
    $('#myModal').one('hidden', function() { 
     alert(arg1); 
    }); 
} 

Я переформатировал код, но единственное функциональное изменение в коде выше относительно кода в исходном вопросе заменяет вызов на on по вызову one. Используя one, нет необходимости отключать обработчик событий.

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