jQueryのクリックをオンザフライで行うボタンを作成したいと思います。ユーザーが完了してボタンを押すと、ボタンを破棄し、jQueryのクリックを再作成する必要があるときまでクリックします。jQueryを使用してクリックをダイナミックボタンにバインドしますか?
jQueryでこれを行う方法がわかりません。私はjQuery.live
が選択肢だと知っていますが、これが良いか悪いかわかりません。
jQueryのクリックをオンザフライで行うボタンを作成したいと思います。ユーザーが完了してボタンを押すと、ボタンを破棄し、jQueryのクリックを再作成する必要があるときまでクリックします。jQueryを使用してクリックをダイナミックボタンにバインドしますか?
jQueryでこれを行う方法がわかりません。私はjQuery.live
が選択肢だと知っていますが、これが良いか悪いかわかりません。
ライブはうまく動作します。ライブを使用しないようにするには、新しいボタンをDOMに追加するときに新しいボタンを押し上げることができます。ライブで
function addNewButton() {
$("sweet_selector_here").append("<input type='button' id='sweetness' value='press me, i am awesome' />");
$("#sweetness").click(function() {
$(this).remove();
});
}
それはこのようになります。
function addNewButton() {
$("sweet_selector_here").append("<input type='button' id='sweetness' value='press me, i am awesome' />");
}
$("#sweetness").live("click", function() {
$(this).remove();
});
は、私はそのような古いと答えた質問に投稿してすみません。私は同様の問題を抱えていて、この回答が私を助けてくれましたが、かなり私をそこに連れて来ませんでした。試行錯誤のあと... Webページに領域を追加して削除する私の実際的な解決策です。私は動的フォームフィールドでそれを使用しますが、あなたのニーズは異なる場合があります。
ここは、ページの静的部分のフォームの一部です。
<fieldset>
<legend>Email-tauluun</legend>
<a class="button_ajax email-add">Add new area</a>
<p>
<span class="email_original_area">
<label>Email:
<input type="text" name="emails[]" id="email0" />
</label>
</span>
<!--Below we add some more areas-->
<span id="email_add_area"></span>
</p>
</fieldset>
JavaScript機能が必要です。これらはjQueryを使用します。
<script type="text/javascript">
//we need a counter for dynamic fields
var cnt=0;
$(document).ready(function(){
$('.email-add').click(function(){
cnt += 1; //let's count...
$('#email_add_area').append(
'<span class="dynExtra"><br /><label>Email: ' +
'<input type="text" name="emails[]" id="email' + cnt + '" /></label>' +
'</span>'
);
//this function creates a button for newly created area
//must be done after the creation of the area
addRemover();
});
});
function addRemover() {
//appends remove button to the last created area
$('<a class="button_ajax dynExtra-clear" name="dynExtra-clear">Remove area ' + cnt + '</a>').appendTo('#email_add_area');
//remove the clicked button and it's previous sibling
$('.dynExtra-clear').click(function(){
$(this).prev().remove();
$(this).remove();
});
}
</script>
うまくいけば、これは、誰かを助け、私は何も忘れませんでした。
ライブで使用するには、パフォーマンス上の問題がありますか? – chobo2