javascript - 将事件处理程序动态添加到也是动态生成的 href

标签 javascript jquery twitter-bootstrap

我有一个按钮,当单击此按钮时,我需要动态生成一个链接并向其添加一个处理程序,该处理程序显示 Twitter Bootstrap 模式。我试过这个:

$(function() {

  function showModal() {
    $("#myModal").modal("show");
  }

  $(document).on("click", "#my_btn", function() {
    //generating a link a adding a handler to it which is "showModal()"
    //.....
    $("#my_href").html("Some text123 <a href='#' onclick='showModal();'>test123</a>.");
    //.....
  })
});

但是当我点击此链接时,会抛出错误,并显示

Uncaught ReferenceError: showModal is not defined 

当然,我可以将 showModal() 移出 $(function() {...})。但我想知道,有没有更好的方法呢?总的来说,这是实现我想要的目标的好方法吗?

更新: 即使将 showModal() 移出 $(function() {...}) 后,它也不起作用,它会将我重定向到同一页面,但不会显示弹出窗口。

最佳答案

不要使用内联 Javascript。您已经发布了一个完美的示例,说明您应该如何在问题中正确执行此操作:在包含元素上使用 .on

 $(document).on("click", "#my_btn", function() {
    $("#my_href").html("Some text123 <a href='#'>test123</a>.");
 });

 $('#my_href').on('click', 'a', showModal);

关于javascript - 将事件处理程序动态添加到也是动态生成的 href,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24399892/

相关文章:

jquery - 是否可以从不在 DOM 中的 HTML 代码创建 bootstrap 3 模式?

javascript - 给一个 css block 一个特殊的 id 来识别

javascript - 捆绑的 Webextension 看不到 JQuery

javascript - 如何在 Vuejs 中修复 "webpack Dev Server Invalid Options"

Jquery cookie 插件不适用于 Firefox

javascript - 如果不存在内容,则隐藏 Bootstrap 中的选项卡

javascript - 有没有办法在Chrome DevTools中查看用户定义的函数?

javascript - Rails 应用程序 : require bootstrap vs require bootstrap-sprockets

jquery - Django + Ajax

html - Bootstrap : Rows/Cols Layout Issue