0

我试图在页面最初打开时加载一个弹出灯箱窗口。我可以让它在单击时工作,但我无法获得正确的代码以在脚本中添加一个类。我在 HTML Kickstart 中使用“灯箱”。

有效的链接如下所示:<a class="lightbox" href="#bbc">BBC</a>这非常有效。基本上我如何让它在页面加载时自动工作。

我对脚本的尝试:

<script type="text/javascript">
    function load() {
        var target = location.href = "#bbc";
        target.className = "lightbox";
    }
</script> 
4

4 回答 4

1

所以我假设您想向该锚标记添加一个类:

$(function () {
    $("a[href=#bbc]").addClass("lightbox");
});

使用$(function() {…})与使用ready()函数(在 JQuery 中)相同。我建议在 DOM 准备好而不是“加载”之后运行代码。

于 2013-05-28T10:41:31.810 回答
0

您需要在标签事件load()上调用该函数。onLoad<body>

<body onLoad="load()">
于 2013-05-28T10:31:04.897 回答
0
$(window).load(function () {
    var target = location.href = "#bbc";
    target.className = "lightbox";
});
于 2013-05-28T10:31:53.807 回答
0

我阅读这个问题的方式——忽略标题——是用户试图在加载时触发灯箱。虽然这可能是一个错误的假设,但使用 javascript 触发链接的方法是使用以下.click()方法:

window.onload = function(){
  var i, list = document.getElementsByTagName('a');
  for ( i=0; i<list.length; i++ ) {
    /// this will only work for links with only a class name of lightbox.
    /// you could look into using getElementsByClassName or something similar.
    /// I use getElementsByTagName because I know how supported it is.
    if ( list[i].className == 'lightbox' ) {
      list[i].click();
    }
  }
};

上面的代码将支持页面中的多个灯箱链接,这可能不是我们所希望的,因此最好将一个添加id到您希望定位的链接,然后使用:

window.onload = function(){
  document.getElementById('clickonload').click();
};

<a id="clickonload" class="lightbox" href="#bbc">BBC</a>

但是,您可能会发现,在阅读您正在使用的任何灯箱插件的文档时,您可以从 JavaScript 中使用一个命令,而不是单击目标链接。

于 2013-05-28T10:50:35.300 回答