我想说body
是否有x类来添加x类。
的Javascript
$('body').toggleClass('projectLoaded');
$('[data-type="projectLoader"]').click(function() {
var proj = $(this)[0].getAttribute('data-project');
$('#arrow-nav').addClass('slideIn');
updateHash(proj);
return false;
});
$('[data-type="projectDie"]').click(function() {
$('body').removeClass('projectLoaded');
$('#arrow-nav').removeClass('slideIn');
return false;
});
if ($('body').hasClass('projectLoaded')) {
$('#arrow-nav').addClass('slideIn');
} else {
$('#arrow-nav').removeClass('slideIn');
}
触发projectLoaded
时,addClass
适用于slideIn
,但当我刷新时,即使projectLoaded
处于有效状态,addClass
也会消失。我认为hasClass
会起作用,但事实并非如此。一切正常,但只是刷新就消失了。
工作页面here,点击一个项目,您#arrow-nav.slideIn
正在工作,但刷新并且未添加.slideIn
。
更新 这对我有用:
$( 'document' ).ready(function() {
if ($('body').hasClass('projectLoaded')) {
$('#arrow-nav').addClass('slideIn');
} else {
$('#arrow-nav').removeClass('slideIn');
}
});
或
$( 'body.projectLoaded' ).ready(function() {
$('#arrow-nav').addClass('slideIn');
});
如果这不合适或有更有效的方法,请在下面提交。
答案 0 :(得分:2)
按如下方式检查就绪可能会有所帮助
$( document ).ready(function() {
console.log( "ready!" );
$('body').toggleClass('projectLoaded');
});
我的直觉告诉我这会起作用,但没有测试它。
$( 'body' ).ready(function() {
console.log( "ready!" );
$('body').toggleClass('projectLoaded');
});
答案 1 :(得分:1)
$('body')。toggleClass('projectLoaded')在函数loadProject()中给出,该函数在检查hasClass条件后执行。因此,在主体中添加类“projectLoaded”之前,hasClass条件已经完成,因此不会添加类“slideIn”。在文档中尝试使用此语句'$('body')。toggleClass('projectLoaded')'就像上面一样。它会起作用。