Я обнажил следующее до гола, я передаю больше атрибутов, чтобы вызвать специфическую информацию в моем ajax.
$(document).on("click", ".call", function(){
$.ajax({type: "POST",url: "showform.asp",dataType:"html",data: {},cache: false,success:function(result){
$("#LoadArea").html(result);
}});
});
$(document).on("click", ".cbcall", function(){
$.ajax({type: "POST",url: "select.asp",dataType:"html",data: {},cache: false,success:function(result){
$("#LoadArea").html(result);
}});
});
Выше приведен пример Jquery, который я использую, а ниже - HTML, который я использую.
<p class="call">click here to load</p>
<div id="LoadArea"></div>
Когда нажата кнопка , чтобы загрузить , содержимое страницы showform.asp загружается в элемент LoadArea. Содержимое showform.asp выглядит следующим образом
<div class="call">
<input type="checkbox" class="cbcall">
</div>
Проблема в том, что если я нажму на флажок (.cbcall), событие всплывет, и загрузится showform.asp. Я довольно новичок в Jquery, поэтому я хотел бы знать, как остановить всплывающее окно событий, но все еще иметь возможность установить и снять флажок, который загружен в showform.asp.
Я пытался вернуть false; но это не будет проверять флажок.
Кто-нибудь может указать мне правильное направление?
ОБНОВЛЕНИЕ - Подправлен код, соответствующий предложению
Я обновил мою стартовую страницу в соответствии с кодом Никола (спасибо Никола)
$(document).ready(function(){
$(".call").on("click", function(e){
//check that event is originated by a <p class="call"> element
if($(e.target).is('.call')){
alert('.call actioned');
$.ajax({type: "POST",url: "showform.asp",dataType:"html",data: {},cache: false,success:function(result){$("#LoadArea").html(result);}});
}
});
$( ".call").on("click", ".cbcall", function(e){
alert('radio actioned');
//Stop immediate propagation
e.stopImmediatePropagation();
$.ajax({type: "POST",url: "select.asp",dataType:"html",data: {},cache: false,success:function(result){$("#LoadArea").html(result);}});
});
});
<p class="call">click here to load</p>
<div id="LoadArea"></div>
<!-- additonal code below here -->
<div class="call">
<input type="checkbox" class="cbcall">
</div>
Кроме того, я добавил содержимое showform.asp внизу страницы и добавил несколько предупреждений в Jquery.
Когда я нажимаю на <p class="call">click here to load</p>
или <input type="checkbox" class="cbcall">
на начальных функциях страницы, срабатывает оповещение и загружается ajax, но когда я использую только <p class="call">click here to load</p>
и пробую те же вызовы из загруженной ajax showform .asp страница ничего не происходит.