首页 文章

jQuery生成的元素不会调用函数

提问于
浏览
-2

我从ajax生成锚点这里是代码

html+=' <a  class="btn-floating activator btn-move-up z-depth-4 modal-trigger right" href=".update-topic-modals" >'
                 html+='<i class="material-icons  blue-text text-darken-4 white" id="editmodal" onclick="editFunction('+value._id+');" >edit</i></a>'

当我点击这个锚定函数时:editFunction(value)没有调用这里是一个editFunction()代码

<script>function editFunction(_id) {  alert(_id);      }</script>

这是它的样子

image of button that is generated by jQuery

当我按下这个btn函数不是在调用

1 回答

  • 1

    您需要进行一些更改

    • 移动onclick

    • 将数据存储在数据属性中

    • 委派点击

    • preventDefault点击不加载href

    function editFunction(_id) {
      console.log(_id);
    }
    
    var value = {
      _id: "hello"
    }
    
    html = '<a data-id="' + value._id + '" class="btn-floating activator btn-move-up z-depth-4 modal-trigger right" href=".update-topic-modals" >'
    html += '<i class="material-icons  blue-text text-darken-4 white" id="editmodal">edit</i></a>'
    
    $("#container").on("click",".modal-trigger",function(e) {
      e.preventDefault();
      editFunction($(this).attr("data-id"));
    });
    
    $("#container").append(html)
    
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <div id="container"></div>
    

相关问题