如何点击JS中的div或class来追加

时间:2014-06-24 10:23:30

标签: jquery ajax

好的,我试图做的很简单但不适合我。我有比特币帐户,我需要创建付款。对于这种方法,我有一个归档,当用户输入金额并点击支付系统通过API连接设置付款和返回代码。这个代码需要放在我的DIV和客户端的数据代码中,应再次点击进行此付款。我希望用户在放入金额后只点击一个,当我输入数据代码并使用按钮显示div时我自动想要button.clic()。

我的第一步是创建简单的HTML,我有一个来自官方示例的教程(请不要付费!!!)

<a href="#" class="my-custom-link">Show Me The Modal!</a><div class="coinbase-button" data-code="d070357b8c689f549bb13c3537303847" data-button-style="none"></div>

<script src="https://coinbase.com/assets/button.js" type="text/javascript"></script>

<script type="text/javascript">
  $(document).ready(function() {
    $('.my-custom-link').click(function(){
      $(document).trigger('coinbase_show_modal', 'd070357b8c689f549bb13c3537303847');
      return false;
    });

    $(document).on('coinbase_payment_complete', function(event, code){
      console.log("Payment completed for button "+code);
      window.location = "/confirmation.html";
    });
  });
</script>

此代码是正确的,当我点击显示模态是一切都好,但接下来我有NEXT按钮。当我点击下面的JS时,这个函数正在运行

<script>
$(function(){

    function preparePayment(event) {
        $('#makePayment').empty();
        $('#makePayment').append('<a href="#" class="my-custom-link">Show Me The Modal!</a><div class="coinbase-button" data-code="d070357b8c689f549bb13c3537303847" data-button-style="none"></div>');
            return false;
      }

      $( "#next" ).click(function() {
          //$( this ).empty();
          preparePayment();
          //$('#makePayment').click();
      });

});
</script>

现在,当我单击NEXT时,此div为空并且在.append()中附加代码显示,但是当我单击Show The Modal时!什么都没发生?你能告诉我我错了什么吗?

2 个答案:

答案 0 :(得分:0)

尝试在此背景下使用event-delegation

$("#makePayment").on('click','.my-custom-link', function(){
   //your code goes here
});

答案 1 :(得分:0)

由于在my-custom-link js方法中动态添加了preparePayment类,因此需要使用event delegation来注册事件处理程序,如:

// New way (jQuery 1.7+) - .on(events, selector, handler)
$(document).on('click', '.my-custom-link', function(event) {
    $(document).trigger('coinbase_show_modal', 'd070357b8c689f549bb13c3537303847');
    return false;
});