(Я не уверен, как назвать этот пост).
Рассмотрим следующий код. У меня есть кнопка для удаления текста и вставки новой кнопки. Новая кнопка вставляется в порядке, но ничего не происходит при нажатии (появляется простой popoup). Firebug не помогает. Я подозреваю, что НЕ знаю, как использовать $ (document).ready.
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
<title>tre.html</title>
<script type="text/javascript" src="..../jquery-1.8.3.js"></script>
<script type="text/javascript">
function resetButton() {
$('ul.eventlist button.reset')
.unbind('click')
.bind('click', function(event) {
event.preventDefault();
alert($(this).parent().html());
alert('mario');
});
}
function removeButton() {
$('ul.eventlist button.remove')
.unbind('click')
.bind('click', function(e) {
e.preventDefault();
var reset = $('<li><button class="reset" ><span>Reset</span></button> New text</li>');
$(this).parent().parent().append(reset);
$(this).parent().remove();
});
}
</script>
<script type="text/javascript">
$(document).ready(function() {
removeButton();
resetButton();
});
</script>
</head>
<body>
<ul class="eventlist">
<li><button class="remove"><span>Delete</span></button> Some Text
</li>
</ul>
</body>
</html>
Внутри функции готовности документа, когда вы вызываете resetButton()
кнопка сброса не существует. Вы должны вызвать эту функцию внутри removeButton()
, после того, как была создана кнопка сброса.
Например:
function removeButton() {
$('ul.eventlist button.remove')
.unbind('click')
.bind('click', function(e) {
e.preventDefault();
var reset = $('<li><button class="reset" ><span>Reset</span></button> New text</li>');
$(this).parent().parent().append(reset);
$(this).parent().remove();
resetButton();
});
}
Вот скрипка с кодом: http://jsfiddle.net/7AAws/2/
Hey ur обязательная функция при загрузке страницы.... Но в это время кнопка сброса не существует.
Поэтому вызовите resetButton() внутри removeButton()