2014-02-17 2 views
2

Я следующий код, вызывается в $(document).ready():Динамически создаваемые кнопки OnClick не работает

btnHolders.appendChild(_createButton("Note", function(){ 
    showNote(); 
})); 

var _createButton = function(name, func){ 
    var btn = document.createElement("input"); 
    btn.type = "button"; 
    btn.id = "btn" + name; 
    btn.onclick = func; 
    btn.value = name; 

    return btn; 
}; 

Однако, когда я смотрю на источник, я получаю следующее:

<input type="button" id="btnNote" value="Note">

+0

@scrowler, OP сказал, что он использовал document.ready «У меня есть следующий код, который вызывается в $ (document) .ready (« – Adil

+2

onclick не будет отображаться в «источнике» –

+0

Что говорит ваша консоль? –

ответ

3

I немного изменил ваш код, поскольку вы вызывали функцию, которая ранее не была определена. Также почему бы не использовать jQuery, чтобы сократить код, поскольку вы уже включили его?

var btnHolders = $('#btnHolders'); 

_createButton("Note", showNote); 

function _createButton(name, func){ 
    var btn = $('<input/>').attr({ 
     'type': 'button', 
     'id': 'btn' + name, 
     'value': name 
    }).bind('click', func); 

    btnHolders.append(btn); 
}; 

function showNote() { 
    console.log('test'); 
} 

DEMO

+0

Вы вызываете '_createButton' до того, как он был определен, и ваша демонстрация не работает. –

+0

@TarunPai Вы можете вызвать функцию так, как я ее сделал, поскольку функция не была назначена 'var'iable, как это сделала OP. Пожалуйста, сначала подумайте, прежде чем начинать. Также демо работает для меня отлично. – enyce12

+0

Undo-ed downvote. Возникает проблема с вопросом imho. Это смесь ванильных js и jquery. –

-1

использование живой нажмите на кнопку:

$("#btnNote").click(function(){  
    alert('i am here '); 
}) 
+0

Вы читали ниже ответы, которые теперь есть - оценка? BTW: 'live' устарел для' on' – TheGeekZn

0

Если вам нужно сделать в JavaScript, смотрите это ...

См следующий скрипку ... [скрипка1]: http://jsfiddle.net/pfCdd/

function myFunction(){ 
    var btn=document.createElement("BUTTON"); 
    var t=document.createTextNode("CLICK ME"); 
    btn.appendChild(t); 
    document.body.appendChild(btn); 
    btn.onclick = myfunc; 
} 
myFunction(); 
function myfunc(){ 
    alert("hai"); 
} 
Смежные вопросы