21

イベントの 1 つでユーザー入力を作成しています。

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

4 に答える 4

38

これを試して:

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

スティーブ

于 2009-04-25T22:20:30.033 に答える
6

ここであなたの回線の 1 つに問題があります。私はあなたのためにそれを修正しました:

 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);
 }

それはもっと理にかなっていますか?

于 2009-04-25T22:28:33.587 に答える
2

これらを渡すつもりなら、\r\n をエスケープしたいと思うかもしれません...

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

onclick ハンドラーが何を達成しようとしているのかよくわかりません...

于 2009-04-25T22:21:34.557 に答える
1

これが、私が jQuery を使用することに決めた理由の 1 つです。

 $('<input type="submit" value="Join chat" />')
      .click( function() { conn.send('$connect\r\n'); } )
      .appendTo('<div></div>')
      .appendTo('#box');
于 2009-04-25T22:59:47.320 に答える