Я не знаю, почему событие jQuery click на #btn
не работает.
'//this is the script'
$('document').ready(function(){
$('#btn').click(function(){
alert('2');
});
});
function appendToPopUp(){
document.getElementById('popUp').innerHTML='<BUTTON id="btn" onClick="alert(1)">clickerIci</BUTTON>';
}
<!--this is the body-->
<DIV id='popUp'></DIV>
<BUTTON onClick='appendToPopUp()'>display</BUTTON>
Здесь есть пара проблем:
$('document').ready(...
должно быть:
$(document).ready(...
Затем вы динамически вставляете кнопку btn
. Поскольку он недоступен в document.ready
это событие не привязано к нему вообще. Вам нужно будет повторно appendToPopUp
событие внутри appendToPopUp
.
function appendToPopUp()
{
document.getElementById('popUp').innerHTML='<BUTTON id="btn" onClick="alert(1)">clickerIci</BUTTON>';
$('#btn').click(function(){
alert('2');
});
}
Итак, в этом случае вам действительно не нужен $(document).ready()
.
редактировать
То, что я на самом деле делаю, это что-то вроде этого:
<DIV id='popUp'></DIV>
<BUTTON id="display">display</BUTTON>
$(document).ready(function() {
$('#display').on('click', function() {
$('#popUp').html('<BUTTON id="btn">clickerIci</BUTTON>');
$('#btn').on('click', function() {
alert('2');
});
});
});
См. JSFiddle.
Try with the below HTML...
On page load Jquery doesn't know about #btn so it will not bind the events so we explitcly calling the bindevents function after it is loaded to DOM.
<script>
function bindevents(){
$('#btn').on("click",function(){
alert('2');
});
}
function appendToPopUp()
{
document.getElementById('popUp').innerHTML='<BUTTON id="btn" onClick="alert(1)">clickerIci</BUTTON>';
bindevents();
}
</script>
<DIV id='popUp'></DIV>
<BUTTON onClick='appendToPopUp()'>display</BUTTON>
$(document).ready(...