Привязать щелчок к динамической кнопке с помощью jQuery?

Я хочу создать кнопку с кликом jQuery на лету. После того, как пользователь закончил и нажал кнопку, я хочу уничтожить кнопку и щелчок jQuery до тех пор, пока он мне не понадобится.

Я не уверен, как это сделать в jQuery. я знаюjQuery.live Это вариант, но я не уверен, будет ли это лучше или хуже, чем я хочу это сделать.

Ответы на вопрос(3)

Решение Вопроса

Если вы не хотите использовать 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();
});
 chobo227 авг. 2009 г., 05:56
Приходят ли живые проблемы с производительностью, если вы часто их используете?

   $('#targetdiv').append( $("<div>foobar</div>").click( function(evt) { $(this).remove(); }))

Вот'сдемонстрационный сайт показывая это в действии.

 chobo227 авг. 2009 г., 05:57
Я пробовал что-то подобное с цепочкой, но это не сработало. Я попытался поставить окно предупреждения на щелчке, оно никогда не будет ничего делать.
 chobo227 авг. 2009 г., 06:07
когда я пробую демо и нажимаю кнопку, ничего не происходит.
 seth27 авг. 2009 г., 06:05
странный. Я только что создал демонстрационный сайт, который работает.
 chobo227 авг. 2009 г., 06:53
ах, что ссылка работает сейчас.
 seth27 авг. 2009 г., 06:11
странно. у меня работает в FF и IE.jsbin.com/isowu  Никаких ошибок в консоли?

что пост на такой старый и ответил на вопрос. У меня была похожая проблема, и этот ответ помог мне, но нене поймите меня там После проб и ошибок ... ЗдесьЭто мое практическое решение для добавления областей на веб-страницу и их удаления. Я использую его с динамическими полями формы, но ваши потребности могут отличаться.

Вот's часть формы в статической части страницы.

<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>

Надеюсь, это поможет кому-то, и я неничего не забуду.

Ваш ответ на вопрос