2009-04-25 1 views
17

で入力するのonclickプロパティを追加します。私は使用しようとしましたは、私はイベントの一つで、ユーザー入力を作成していますJavaScriptを

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

...代わりに、どちらも動作しませんでした。私は間違って何をしていますか?

+1

あなたはすでにこれらの変数のすべてを宣言したことがありますか?そうでない場合は、 "暗黙のグローバル変数"を使用しています。これはあまり良くありません。 "var"キーワードで宣言することで、ローカル変数になります。 –

答えて

30

これを試してみてください:

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

スティーブ

+0

試しましたが、入力がonclickプロパティを取得しませんでした。何が起こっているのでしょうか? – Alex

+0

入力が「onclick」機能を持っているかどうかはどうやって判断していますか? –

+0

私はFireBugに行き、 "HTML"セクションを調べます。 – Alex

2

私はあなたがこれらを渡すつもりなら、\ r \ nをエスケープしたいかもしれないと思う...

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

Iドンあなたのonclickハンドラが何を達成しようとしているのかよく分かりません...

+0

ああ、問題ありません。TCPソケット経由で回線を送信します。私は実際にonclickプロパティを入力タグに付けることに固執しています。 – Alex

6

ここにあなたのラインに問題があります。私はあなたのためにそれを修正しました:

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

これは意味がありますか?

+0

それはそれだった、ありがとう。 – Alex

1

これは私がjQueryのを使用することを決めた理由の一つである:

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