首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从bootstrap popover内容内部执行js

从bootstrap popover内容内部执行js
EN

Stack Overflow用户
提问于 2013-11-27 14:29:58
回答 1查看 1.9K关注 0票数 2

在bootstrap 2.3弹出窗口中,我显示了一些html代码。当我点击它时,我需要触发一个js函数,但我很难做到这一点。

如果我单击包含弹出窗口内呈现的HTML的div,而不是单击弹出窗口内部的内容,则js函数可以正确执行。

这是我的咖啡

代码语言:javascript
运行
复制
$('[data-toggle~=popover]').popover({ 
  html: true
  content: ->
    $("#content").html()
}) 

$(".updateit").on "click", ->
    console.log "pippo"

和html

代码语言:javascript
运行
复制
<a data-placement="right" data-toggle="popover" href="#">click me</a>
<div id="content">
  <div class="updateit" style="color:red">abc</div>
</div>

出于测试目的,div#content不是隐藏的,如果我点击它,控制台上会打印出"pippo“,但是如果我点击弹出的内容( html看起来一样),控制台上什么也不会打印出来。

有没有办法从popover内容内部调用js函数?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2013-11-27 14:56:23

这看起来像一个常见的jQuery事件绑定陷阱。可能发生的情况是,在创建弹出窗口之前,$(".updateit").on "click", () -> ...正在运行。该特定函数只会将单击事件绑定到现有元素;新元素不会应用该事件。由于popover在运行后将使用“updateit”类创建自己的元素,因此该事件不会应用于它。

幸运的是,修复非常简单。$(document).on 'click', '.updateit', () -> ..应该可以做到这一点。这将应用于文档中“updateit”类的每个元素,无论它是何时创建的。

相关的jsbin - http://jsbin.com/ALESUXib/1/edit

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20235453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档