【问题标题】:Open and close floating layer same link?打开和关闭浮动层相同的链接?
【发布时间】:2014-10-18 21:20:22
【问题描述】:

我有一个通过此链接激活的浮动层:

<a href="javascript:ToggleFloatingLayer('FloatingLayer',1);"> BUTTON </a>

这是浮动层:

<div id="FloatingLayer">
           <div id="closeX"> <a href="#" onClick="ToggleFloatingLayer('FloatingLayer',0);return false">x</a>
           </div>

脚本:

<script language="JavaScript1.2">

      function ToggleFloatingLayer(DivID, iState) // 1 visible, 0 hidden
      {
        if(document.layers)    //NN4+
        {
           document.layers[DivID].visibility = iState ? "show" : "hide";
        }
        else if(document.getElementById)      //gecko(NN6) + IE 5+
        {
            var obj = document.getElementById(DivID);
            obj.style.visibility = iState ? "visible" : "hidden";
        }
        else if(document.all)   // IE 4
        {
            document.all[DivID].style.visibility = iState ? "visible" : "hidden";
        }
      }
    </script>

我希望“按钮”打开和关闭这个浮动层。所以它在同一个链接中打开和关闭。但是现在我只能通过那个“closeX”x来关闭它。我该怎么做?

【问题讨论】:

  • 使用 jQuery 让您轻松管理跨浏览器问题

标签: javascript html css layer floating


【解决方案1】:

jQuery 是标准的跨浏览器和功能丰富的 JavaScript 库
在您的应用程序中学习和使用 jQuery 是所有商业应用程序中最好的 以下是 api 和学习网站的链接

下面为您提供片段

<!DOCTYPE html>
<html>

<head>
  <script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
  <script>
    function toggleFloatingLayer(divID) {
      $("#" + divID).toggle();//its only single line to manage toggling for all browsers
    }
  </script>
</head>

<body>

  <a href="#" onclick="toggleFloatingLayer('FloatingLayer')"> BUTTON </a>

  <div id="FloatingLayer" style="display:none;border:solid 2px silver;">
    <div id="closeX" style="background:#efefef"> <a href="#" onClick="toggleFloatingLayer('FloatingLayer')">x</a>
    </div>
    <div>
      Test content of Floating layer
    </div>
  </div>

</body>

</html>

【讨论】:

  • 请不要这样使用jQuery。了解 delegated events 以及如何将视图与应用程序逻辑分离!
  • @nietonfir 谢谢你的通知 :) 我喜欢事件委托功能。仅供参考...在上面的 sn-p 中没有使用 jQuery 完成的事件附件。示例的目的是用最少的努力和引入 jQuery 来解决问题。
猜你喜欢
  • 2012-09-26
  • 1970-01-01
  • 2018-07-02
  • 1970-01-01
  • 2013-10-06
  • 2010-10-18
  • 2017-12-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多