2017-03-01 30 views
2

オプションの選択に基づいて入力フィールドとボタンが作成されるスクリプトを作成しました。ボタンをクリックすると関数が実行されます。以下は私のコードです:クリック機能で動的に作成ボタン

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<select id="abc"> 
    <option value="1">a</option> 
    <option value="2">b</option> 
    <option value="3">c</option> 
</select> 
<div id="sd"> </div> 

機能

$(document).ready(function() { 
    i=0; 
    $("#abc").on('change',function() { 
    var maindiv= document.createElement('div'); 
     maindiv.setAttribute("id","TextBoxesGroup"); 
     var secdiv=document.createElement('div'); 
     secdiv.setAttribute("id","TextBoxDiv1") 
     maindiv.appendChild(secdiv); 
     var ipt=document.createElement("input"); 
     ipt.setAttribute("type","text"); 
     ipt.setAttribute("id","textbox1"); 
     secdiv.appendChild(ipt); 
     var ad=document.createElement("input"); 
     ad.value= "+"; 
     ad.type="button"; 
     ad.style.width="30px"; 
     ad.setAttribute("id","addButton"+i); 
     ad.onclick=fu_a(this.id); 
     secdiv.appendChild(ad);  
     var division= document.getElementById("sd"); 
     division.appendChild(maindiv); 
     i++; 
    }); 
});  

function fu_a(id){ 
    alert(id); 
} 

ここでボタンの機能をクリックしたときに実行する必要があります。しかし、実際にはオプションを変更しながら実行されています。ここに私のバイオリンは、次のとおりです。

https://jsfiddle.net/Safoora/ssvjjg6e/16/

+2

'ad.onclick = fu_a(this.id)で使用します。' '広告でなければなりません.onclick = fu_a.bind(this.id); ' – Rajesh

+0

もう1:http://stackoverflow.com/questions/29526556/javascript-onclick-function-is-called-immediately-not-when-clicked – Rajesh

+0

@Satpal感謝。人々は通常upvotesで答えを削除しません。例を先導してくれてありがとう。 – Rajesh

答えて

0

はちょうどこの

広告が動的に作成したボタン

ad.addEventListener("click", function(){ 
    alert("button clicked"); 
}); 
+0

私は同じことを忠告していましたが、なぜこれがすぐに呼び出されたのかはわかりません。また、あなたが明らかな質問を見つけたときに、すでに答えが出ている可能性が高いです。最善の方法は、そのような投稿を見つけて今のところリンクを共有することです。あなたは十分に担当者を持っている場合その後、あなたは重複 – Rajesh

+0

うんとしてそれらをマークすることができますが、実際に担当者のこの種で、私はまたのSO –

+0

はい、私は知っている新たなんだということはできません。ザッツなぜ私は、このような記事を見つけ、** *今のところ**彼らのリンクを共有*と述べました。 – Rajesh

関連する問題