2015-07-01 3 views
1

Так я есть кнопкаКак предотвратить событие ребенка от стрельбы в JQuery

<input id="expandButton" type="submit" value="Expand" class="loadWindow"/> 

Я приложил обработчик два события.

function confirmContinue() { 
    return confirm("Do you want to expand window, might reload some information?"); 
} 

$("input.loadWindow").click(function(event) { 
     showProcessingWindow(event); 
} 

$("#expandButton").click(function(event) { 
    var result = confirmContinue(); 
    if (!result) { 
      event.preventDefault(); 
      event.stopPropagaton(); 
    } 
} 

Я хочу предотвратить событие ввода «input.loadWindow» при стрельбе, если они говорят, что отменить.

Это то, что происходит прямо сейчас. Кнопка нажата -> Подтверждение пожара -> Я нажимаю кнопку отмены -> показывается окно обработки.

Я хочу, чтобы Кнопка нажата -> Подтверждение огня -> i click cancel -> ничего не делать.

+0

Почему у вас есть два отдельных обработчика событий для одного элемента? Таким образом, это усложнит ситуацию. Если вы хотите показать подтверждение только для идентификатора paticular, вы можете проверить идентификатор текущего события клика, используя '$ (this) .attr (" id ")' –

+0

, скрипт находится в двух разных файлах. Один скрипт loadWindow находится на всех страницах. Другой относится только к определенной странице. –

+0

Хорошо. Понял. Я отправил ответ. Это должно работать в этом случае –

ответ

0

Попробуйте это:

$("#expandButton").click(function(event) { 
 
    if(confirm('Do you want to expand window, might reload some information?')){ 
 
     // call your function here 
 
    }else{ 
 
     return false; 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input id="expandButton" type="submit" value="Expand" class="loadWindow"/>

0

В качестве альтернативы, использовать флаг.

var doShowWindow = true; 
$("#expandButton").click(function(event) { 
    var result = confirmContinue(); 
    if (!result) { 
     doShowWindow = false; 
    } 
}); 

$("input.loadWindow").click(function(event) { 
    if(doShowWindow){ 
     alert(1); 
    } 
    doShowWindow = true; 
}); 

Here's a fiddle.

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