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

可点击链接位于引导程序弹出窗口内,因此如何通过单击弹出窗口内容链接来打开页面div。

这是Fiddle

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

最佳答案

而不是此代码:

$( "#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中显示。

因此解决方案是使用Delegated事件:
从官方jQuery网站


  委派事件具有可以处理以下事件的优势:
  后继元素添加到文档中的子元素。通过
  选择一个保证在当前时间存在的元素
  附加了委托事件处理程序,您可以使用委托事件来
  避免需要频繁附加和删除事件处理程序。这个
  元素可以是视图中的容器元素
  例如,模型-视图-控制器设计或事件记录
  处理程序希望监视文档中的所有冒泡事件。的
  document元素位于文档开头之前
  加载任何其他HTML,因此可以安全地在其中附加事件
  等待文档准备就绪。


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

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

关于javascript - 从引导弹出窗口打开隐藏的div,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19158364/

10-14 06:24