Добавить свойство onclick для ввода с помощью JavaScript - PullRequest
19 голосов
/ 26 апреля 2009

Я создаю пользовательский ввод для одного из событий:

var throwConnectBox = function() {
    chat_box = document.getElementById('box');
    div = window.parent.document.createElement('div');
    input = window.parent.document.createElement('input');
    input.type = "submit";
    input.value = "Join chat";
    input.onclick = "conn.send('$connect\r\n');";
    div.appendChild(input);
    chat_box.appendChild(div);
}

... но полученный ввод не имеет свойства onclick. Я пытался использовать

    input.onclick = conn.send('$connect\r\n');

... вместо этого, но тоже не сработало. Что я делаю не так?

Ответы [ 4 ]

36 голосов
/ 26 апреля 2009

Попробуйте это:

 input.onclick = function() { conn.send('$connect\r\n'); };

Steve

6 голосов
/ 26 апреля 2009

Есть проблема с одной из ваших строк здесь; Я исправил это для вас:

 var throwConnectBox = function() {
     chat_box = document.getElementById('box');
     div = window.parent.document.createElement('div');
     input = window.parent.document.createElement('input');
     input.type = "submit";
     input.value = "Join chat";
     /* this line is incorrect, surely you don't want to create a string? */
     // input.onclick = "conn.send('$connect\r\n');";?
     input.onclick = function() { 
         conn.send('$connect\r\n'); 
     };
     div.appendChild(input);
     chat_box.appendChild(div);
 }

Это имеет больше смысла?

2 голосов
/ 26 апреля 2009

Я думаю, что вы можете избежать \ r \ n, если вы собираетесь передать эти ...

conn.send('$connect\\r\\n')

Я не совсем понимаю, чего пытается достичь ваш обработчик onclick ...

1 голос
/ 26 апреля 2009

Это одна из причин, по которой я решил использовать jQuery:

 $('<input type="submit" value="Join chat" />')
      .click( function() { conn.send('$connect\r\n'); } )
      .appendTo('<div></div>')
      .appendTo('#box');
...