【问题标题】:Open hidden div from bootstrap popover从引导弹出窗口打开隐藏的 div
【发布时间】:2013-10-03 20:23:10
【问题描述】:

我在页面上有一个隐藏的 div,需要通过点击功能打开。

可点击链接位于引导弹出框内,因此如何通过点击弹出框内容链接打开页面 div。

这里是Fiddle

$( "#open" ).click(function() {
      $('.open-this').slideToggle("slow");
    });

【问题讨论】:

  • 真的很混乱.....会检查好的
  • 在下面查看我的更新答案

标签: javascript jquery twitter-bootstrap


【解决方案1】:

代替这段代码:

$( "#open" ).click(function() {
      $('.open-this').slideToggle("slow");
    });

试试这个

$("body").on("click","#open",function(e) {
    e.preventDefault();
      $('.open-this').slideToggle("slow");
    });

查看更新的小提琴http://jsfiddle.net/bfkLM/15/

您的代码的问题是该链接是从您的代码生成的,而不是在您的事件处理程序试图让它附加click 事件时在 dom 中显示。

所以解决方案是使用委托事件: 来自官方; jquery网站

委托事件的优点是它们可以处理来自 以后添加到文档中的后代元素。经过 选择一个保证在该时间存在的元素 附加了委托事件处理程序,您可以使用委托事件 避免频繁附加和删除事件处理程序的需要。这个 element 可以是视图中的容器元素 例如,模型-视图-控制器设计,或记录事件 处理程序想要监视文档中的所有冒泡事件。这 文档元素在文档头部之前可用 加载任何其他 HTML,因此在此处附加事件是安全的 等待文档准备好。

这就是为什么我的新代码可以工作,因为它将事件处理程序附加到 body 标记并检查点击事件是否来自我的目标元素 (open),当这种情况发生时,它将启动我的代码并将显示弹出窗口

还有一件事,e.preventDefault(); 的使用是为了防止页面导航到锚点的href 属性。

【讨论】:

  • 嘿,谢谢它的工作。单击同一个标签时,我需要向下滚动到页面,但它没有向下滚动到相应的 id。有什么想法吗?
  • 你能描述一下你的场景吗?你的意思是当用户点击open链接时,页面应该向下滚动并显示弹出窗口?
  • 嘿,我知道了。谢谢。你能帮忙解决这个问题吗stackoverflow.com/questions/19158064/…
【解决方案2】:

该事件未附加到链接,因为我猜您在文档准备好后没有这样做。

出于测试目的,我在链接中添加了 onclick 功能

onclick="$(\'.open-this\').slideToggle("slow");return false;"

它成功了。

Fiddle


解决方案:

$(function(){
   $( "#open" ).click(function() {
      $('.open-this').slideToggle("slow");
      return false;
   });
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-14
    • 1970-01-01
    • 1970-01-01
    • 2014-10-02
    • 1970-01-01
    • 2022-01-21
    相关资源
    最近更新 更多