0

データベースに何かをアップロードする前に、ビューを追加するためのボタンを動的に作成しようとしています。

私は自分のWebにjqueryを使用しているので、ソリューションがjqueryにある場合はより良い.

今、私はここで見つけたコードを試しています: Creating Dynamic button with click event in javascript

これが私のケースに適応した方法です:

var element = document.createElement("input");
//Assign different attributes to the element. 
element.type = 'button';
element.value = 'hello'; // Really? You want the default value to be the type string?
element.name = 'HELLO';  // And the name too?
element.onclick = window.open('test.html?name=test&surname1=test2&surname2=test4', 'my_new_window');;

var foo = document.getElementById("registerButtonDiv");
//Append the element in page (in span).  
foo.appendChild(element);

ボタンを追加します(これは単純なボタンであり、私のWebページの他のボタンとは異なり、cssに関連するものだと思います)

しかし、onclickイベントについて行ったようなものを使用しようとすると、ボタンが作成されますが、onclick部分は追加されません。私は引用符を使用せずに変更しようとしました...多くのことで、おそらく今は間違っています。あまり真剣に受け止めないでください。最新バージョンをコピーするだけです。例のアラートでは、正常に動作します。

これを修正するにはどうすればよいですか?

動的に入力されたいくつかの変数を他のページに渡す必要があるため、この方法を実行する必要があり、これが私が見つけた最も簡単な解決策です。

4

2 に答える 2

1

関数参照を onclick に渡す必要があります。

element.onclick = function(){
    window.open(...);
};

またはjqueryを使用:

var element = $('<input type="button" value="hello" name="HELLO">');
element.on('click', function() {
    window.open('test.html?name=test&surname1=test2&surname2=test4', 'my_new_window');
});
$("#registerButtonDiv").append(element);

jsfiddle

于 2013-11-14T17:12:27.857 に答える