我为我的新品牌创建了一个网站,作为我第一次与jQuery深入见面,我发现了一些与div状态有关的问题。代码中的if语句检查#homebutton的文本是否等于' blog'或者' home',然后为每个发出不同的scrollTop()命令。问题是我需要停止jQuery函数 - 例如,如果博客是文本,我不希望它运行该函数(这涉及将#homebutton的文本更改为home)然后运行if text = home if语句(因为文本已更改)。我需要一种方法来在它执行一个scrollTop()命令之后停止jQuery函数,或者我希望有人向我展示如何制作一个可以消除这个问题的IF语句。
$(document).ready(function(){
});
$("#askbutton").click(function() {
$("html, body").animate({ scrollTop: 0 }, "fast");
$("#askpage").toggle("slow");
$("#tumblrcontent").toggle("slow");
$("#homebutton").text("HOME");
});
$(window).scroll(function() {
var targetDiv = $('#homebutton');
var matchHeight = $('#tumblrcontent').position().top;
if($(document.body).scrollTop() >= matchHeight) {
// this is where you're css amendments would be done
if (targetDiv.text('BLOG')) { targetDiv.text('HOME'); }
} else {
if (targetDiv.text('HOME')) { targetDiv.text('BLOG'); }
}
});
$("#homebutton").click(function() {
if ($(this).text("HOME") && $("#tumblrcontent").css('display', 'none')){
$("#askpage").fadeOut("slow");
$("#tumblrcontent").fadeIn("slow");
$("html, body").animate({ scrollTop: 0 }, "slow");
$(this).text("BLOG");
//if tumblrcontent is not shown and text says home, this means that #askpage will be showing.
}
if ($(this).text("HOME") && $("#askpage").css('display', 'none')){
$("html, body").animate({ scrollTop: 0 }, "slow");
}
if ($(this).text("BLOG") && $("#askpage").css('display', 'none')) {
$(this).text("HOME");
$('html,body').animate({scrollTop:$("#tumblrcontent").offset().top}, "slow");
}
});
答案 0 :(得分:0)
我很难搞清楚你要做什么。让我们检查一下你的代码吧,我会告诉你代码的作用......
if($(document.body).scrollTop() >= matchHeight) {
上面的语句说“如果文档正文的scrollTop位置大于或等于匹配高度变量,请执行下一组括号内的操作,直到else块。”
// this is where you're css amendments would be done
if (targetDiv.text('BLOG')) { targetDiv.text('HOME'); }
这一行说“将targetDiv的文本值设置为字符串'BLOG'然后评估文本函数的返回值。如果这是真的,那么将targetDiv的text属性设置为字符串'HOME。'” / p>
我非常怀疑这是你的意思,因为这毫无意义。这可能是你的问题所在。几行之后,我看到了同样的问题:
if (targetDiv.text('HOME')) { targetDiv.text('BLOG'); }
您设置目标div文本值的值。你不是评估它。要评估该值,请改为:
if (targetDiv.text() === 'HOME') { targetDiv.text('BLOG'); }
该行说“如果targetDiv的文本值是”HOME“,则将targetDiv的文本值设置为”BLOG。“
这是你想要做的吗?
答案 1 :(得分:0)
$("#homebutton").click(function() {
if ($(this).text =="HOME" && $("#tumblrcontent").is('display', 'none')){
}
}