jQuery函数不能处理文档加载

时间:2013-04-10 20:28:20

标签: javascript jquery document-ready

我有一个jQuery函数,通常可以在Volusion页面上运行,由于某种原因现在它无法运行。 location.pathname.indexOf定位具有该URL的所有页面(该站点使用GET变量在SearchResults.asp页面上执行搜索)。我已经将引用从单打改为双打,我似乎无法找出其他任何东西来测试它。有没有人在这段代码中看到任何语法错误?不应该有任何冲突,因为它只运行jQuery(没有其他像MooTools)。我试图在document.ready之后做一个'Test'警报,但屏幕上没有任何反应。谢谢!

<script>
$(document).ready(function() {  
    if (location.pathname.indexOf('/SearchResults.asp') != -1 ) {
        $('div#content_area').css({'display','none !important'});         
    }
});
</script>

2 个答案:

答案 0 :(得分:8)

您遇到语法错误。

此:

$('div#content_area').css({'display', 'none !important'});

应该是这样的:

$('div#content_area').css({'display': 'none !important'});
//                                  ^
//                                  |
//                                  | look here

使用.css()时,您可以使用2种变体。

您可以使用它来更新单个属性,该属性使用,来分隔CSS属性的名称和值,类似于:

$('div#content_area').css('display', 'none !important');

或者您可以使用jQuery 1.9中添加的新变体,它允许您一次指定多个样式,允许您指定属性 - 值对,类似于:

$('div#content_area').css({
    'display': 'none !important',
    'border' : 'solid 1px red'
});

css()和!important


尝试使用.css()!important来应用样式时似乎存在问题。 有一个很久以前被提出的错误:Ticket #2066被关闭了,另一个被选中了。

它提到,作为替代方案,您可以在使用多样式变体时将cssText设置为与此类似:

$('div#content_area').css({
    'cssText': 'display: none !important'
});
使用单一样式变体时

或者这个:

$('div#content_area').css('cssText', 'display: none !important');

尽管如此,正如提到的那样,提醒一句:

  

您必须小心设置cssText,因为它设置/清除所有内容   在该元素的CSS中。

考虑到cssText的副作用,另一种最可能是最安全的替代方法是创建一个单独的CSS类并应用它,类似于:

.alwaysHide{
    display: none !important;
}
$('div#content_area').addClass('alwaysHide');

希望这有帮助。

答案 1 :(得分:4)

您正在尝试使用2种语法样式。

要么你需要这样做:

<script>
    $(document).ready(function() {  
        if (location.pathname.indexOf('/SearchResults.asp') != -1 ) {
            $('div#content_area').css('display','none !important');         
        }
    });
    </script>

或者你需要使用它:

<script>
    $(document).ready(function() {  
        if (location.pathname.indexOf('/SearchResults.asp') != -1 ) {
            $('div#content_area').css({'display' : 'none !important'});         
        }
    });
    </script>