-2

取自此处的代码:http: //jquerytools.org/demos/overlay/external.html

我让我的弹出窗口正常工作,但我想阻止我的标题显示在覆盖弹出窗口中。我添加了$('#header').hide(); 到下面的脚本,但它不起作用。抱歉,我对 javascript 不太熟悉。任何帮助都会很棒!

$(function () { // if the function argument is given to overlay,   
    // it is assumed to be the onBeforeLoad event listener
    $("a[rel]").overlay({
        mask: 'grey',
        effect: 'apple',
        onBeforeLoad: function () {
            // grab wrapper element inside content 
            var wrap = this.getOverlay().find(".contentWrap");
            // load the page specified in the trigger   
            wrap.load(this.getTrigger().attr("href"));
            $('#header').hide();

        }
    });
});
4

2 回答 2

2

我刚刚做了一个快速测试,我认为问题在于您试图在标题呈现在页面上之前隐藏它。覆盖配置有另一个称为 onLoad 的事件,这将是一个更好的地方来确保外部内容的加载已经发生。

试试这个代码:

$(function() {     
    // if the function argument is given to overlay,   
    // it is assumed to be the onBeforeLoad event listener
    $("a[rel]").overlay({
        mask: 'grey',
        effect: 'apple',
        onBeforeLoad: function() {             
            // grab wrapper element inside content 
            var wrap = this.getOverlay().find(".contentWrap");
            // load the page specified in the trigger   
            wrap.load(this.getTrigger().attr("href"));  
            //at this point, the page is still loading the external content, so it's not available to hide yet
        },
        onLoad: function() {
            $('#header').hide();
        }
    });
});
于 2013-05-14T15:31:23.360 回答
0

我不熟悉这个插件,但有两件事:

  1. 如果你想每次都这样做,它不是动态的。所以把它放在你的 CSS 文件中。
  2. 您在“onBeforeLoad”中定义它,所以它已经是“隐藏”了。在这种情况下,也许有一个功能会更好。
于 2013-05-14T15:21:34.447 回答