Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   не работает кнопка (https://javascript.ru/forum/jquery/44162-ne-rabotaet-knopka.html)

Dyonis417 09.01.2014 09:13

не работает кнопка
 
Добрый день!

Помогите пожалуйста разобраться.
Почему не работает обработчик на вторую кнопку?


<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-2.0.3.js"></script>
</head>

<body>
<button>click me!</button>
<div id="div_"> </div>

<script>
$('button').click(function() {
	alert("OK!");
});

$("#div_").html("<button>click me(1)!</button>");
</script>


</body>
</html>

ОлегА 09.01.2014 09:20

$("#div_").html("<button>click me(1)!</button>");

$('button').click(function() {
	alert("OK!");
});

Dyonis417 09.01.2014 09:46

Спасибо!
Наверное мое упущение, просто хотел сократить код для понимания.

Кнопки добавляются динамически и
$('button').click(function() {
	alert("OK!");
});


происходит намного раньше
$("#div_").html("<button>click me(1)!</button>");


Ваше решение красивое, но оно увы не подходит.

С уважением,
Денис

ksa 09.01.2014 09:52

Цитата:

Сообщение от Dyonis417
решение красивое, но оно увы не подходит

Используй делегирование...

<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<!--
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
</style>
<script type="text/javascript">
</script>
</head>
<body>
<div id='div_'></div>
<script type="text/javascript">
$('#div_').on('click','button',function() {
	alert("OK!");
});
$("#div_").html("<button>click me(1)!</button>");
</script>
</body>
</html>

Dyonis417 09.01.2014 09:58

Спасибо!

Dyonis417 10.01.2014 14:44

а что делать, если jquery-1.4.js и проблематично перейти на новую версию?

Следующий код уже не работает.

<html>
<head>
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.4.js"></script>	
</head>
<body>  
<div id='div_'></div>  
<script type="text/javascript">  
$('#div_').on('click','button',function() {  
   alert("OK!");  
});  
$("#div_").html("<button>click me(1)!</button>");  
</script>  
</body>  
</html>

ksa 10.01.2014 15:11

Dyonis417, там есть старый метод
http://jquery-docs.ru/Events/live/#typefn


Часовой пояс GMT +3, время: 19:08.