在JQuery叠加窗口中隐藏DIV

时间:2013-05-14 15:08:50

标签: javascript jquery jquery-ui

从以下代码中获取: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();

        }
    });
});

2 个答案:

答案 0 :(得分: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();
        }
    });
});

答案 1 :(得分:0)

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

  1. 如果你想每次都这样做,那就不是动态了。所以把它放在你的CSS文件中。
  2. 您可以在“onBeforeLoad”中定义它,因此它已经“隐藏”了。在这种情况下,也许有一个函数会更好。