Я добавил button
динамически. Но когда я нажимаю на него, он запускает несколько click
и вызывает связанную функцию с alert('clicked');
несколько раз, а не один раз.
Можете ли вы сказать мне, почему и как я могу это исправить?
Код
var root = document.getElementById('current_page');
var button = document.createElement('input');
button.type = 'button';
button.title = 'Add new book to list';
button.className = 'btn btn-primary';
button.id = 'get_new';
button.setAttribute('value', 'No Thanks,Get New');
button.setAttribute('style', 'position:relative; top:-5px;left:900px');
root.appendChild(button);
укротитель
$('body').on('click', '#get_new', function () {
alert('clicked');
});
Поскольку вы уже используете jQuery, вы также можете создать элемент с помощью jQuery и связать функцию щелчка при его создании. Вероятно, это решит все, что вызывает проблему с двойным стрельбой.
Скрипт: http://jsfiddle.net/f9PX4/
function myFunction() {
alert('clicked');
}
$(function() {
var button = $("<input>");
button.attr("type", "button")
.attr("title", "Add new book to list")
.attr("id", "get_new")
.css({ position: "relative", top: -5, left: 900 })
.val("No Thanks,Get New")
.addClass("btn btn-primary");
button.click(function() {
return myFunction();
});
$("#current_page").append(button);
});
alert('clicked');
срабатывает более одного раза по одному клику.