Подтвердить что ты не робот

Добавив onclick событие к динамически добавленной кнопке?

Я добавляю кнопку динамически в html, как показано ниже: При нажатии этой кнопки я хочу вызвать функцию Javascript:

var but = document.createElement("button");

but.value="delete row";

but.setAttribute("onclick","callJavascriptFunction()");
//this is not working

but.onclick="callJavascriptFunction()"
//this is also not working

document.getElementById("but").onclick="callJavascriptFunction()"
//this is also not working

but.id="but"+inc;

Есть ли способы решить эту проблему? Plz помогите мне. заранее спасибо

4b9b3361

Ответ 1

попробуйте следующее:

but.onclick = callJavascriptFunction;

или создайте кнопку, обернув ее другим элементом и используйте innerHTML:

var span = document.createElement('span');
span.innerHTML = '<button id="but' + inc +'" onclick="callJavascriptFunction()" />';

Ответ 2

Удалите() из ваших выражений, которые не работают, получите желаемые результаты.

but.setAttribute("onclick",callJavascriptFunction);
but.onclick= callJavascriptFunction;
document.getElementById("but").onclick=callJavascriptFunction;

Ответ 3

Попробуйте
but.addEventListener('click', yourFunction) Обратите внимание на отсутствие скобок () после имени функции. Это связано с тем, что вы назначаете функцию, а не вызываете ее.

Ответ 4

Попробуйте следующее:

var inputTag = document.createElement("div");              
inputTag.innerHTML = "<input type = 'button' value = 'oooh' onClick = 'your_function_name()'>";    
document.body.appendChild(inputTag);

Это создает кнопку внутри DIV, которая отлично работает!

Ответ 5

У меня была аналогичная проблема, но ни одна из этих исправлений не работала. Проблема заключалась в том, что моя кнопка еще не была на странице. Исправление для этого закончилось тем, что происходит от этого:

//Bad code.
var btn = document.createElement('button');
btn.onClick = function() {  console.log("hey");  }

:

//Working Code.  I don't like it, but it works. 
var btn = document.createElement('button');
var wrapper = document.createElement('div');
wrapper.appendChild(btn);

document.body.appendChild(wrapper);
var buttons = wrapper.getElementsByTagName("BUTTON");
buttons[0].onclick = function(){  console.log("hey");  }

Я понятия не имею, почему это работает. Добавление кнопки на страницу и обращение к ней любым другим способом не помогло.

Ответ 6

but.onclick = callJavascriptFunction;

нет двойных кавычек без круглых скобок.

Ответ 7

Этот код работает хорошо для меня и выглядит более простым. Необходимо вызвать функцию с определенным параметром.

var btn = document.createElement("BUTTON");  //<button> element
var t = document.createTextNode("MyButton"); // Create a text node
btn.appendChild(t);   

btn.onclick = function(){myFunction(myparameter)};  
document.getElementById("myView").appendChild(btn);//to show on myView

Ответ 8

but.onclick = function() { yourjavascriptfunction();};

или

but.onclick = function() { functionwithparam(param);};