如果=true,则停止jQuery函数
Stopping a jQuery function if = true
我正在为我的新品牌创建一个网站,作为我第一次深入接触jQuery,我发现了一些与div状态有关的问题。代码中的if语句检查#homebutton的文本是否等于'blog'或'home',然后为每个按钮发出不同的scrollTop()命令。问题是我需要停止jQuery函数——比如说,如果博客是文本,我不希望它运行该函数(包括将#homebutton的文本更改为home),然后运行if-text=home-if语句(因为文本已经更改)。我需要一种方法,在jQuery函数执行其中一个scrollTop()命令后停止它,或者我希望有人向我展示如何编写一个可以消除这个问题的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");
}
});
$("#homebutton").click(function() {
if ($(this).text =="HOME" && $("#tumblrcontent").is('display', 'none')){
}
}
检查此处
我很难弄清楚你想做什么。让我们检查一下你的代码,我会告诉你你的代码是做什么的。。。
if($(document.body).scrollTop() >= matchHeight) {
上面的语句说:"如果文档主体的scrollTop位置大于或等于匹配高度变量,则执行下一组括号内的操作,直到其他块。"
// this is where you're css amendments would be done
if (targetDiv.text('BLOG')) { targetDiv.text('HOME'); }
这一行说:"将targetDiv的文本值设置为字符串'BLOG',然后计算文本函数的返回值。如果这是真的,那么将targetDiv的文本属性设置为字符串'HOME'。"
我非常怀疑你的意思,因为那毫无意义。这可能就是你的问题所在。几行之后,我看到了相同的问题:
if (targetDiv.text('HOME')) { targetDiv.text('BLOG'); }
您正在设置目标div的文本值的值。您不是在评估它。要评估值,请改为:
if (targetDiv.text() === 'HOME') { targetDiv.text('BLOG'); }
该行显示"如果targetDiv的文本值为"HOME",则将targetDiv文本值设置为"BLOG"。"
这就是你想要做的吗?
相关文章:
- 是否有一个JS/jQuery函数可以获取某个类的每个元素的ID
- 如何在JQuery函数中定义一个值,然后调用另一个函数并使用该值
- 如何从jquery函数返回变量
- 如何将具有文本类型值的var放入jQuery函数中
- Jquery函数在错误的时间提交
- 锚链接无法使用.slideUp jquery函数
- 重新分解jQuery函数
- 如何在视图模型contet更新更新上调用Jquery函数
- 如何向这个javascript/jquery函数添加参数
- 添加类来触发jquery函数
- 更改智能表中的页面将停止JQuery函数的工作
- 使用每500ms运行一次的jquery函数是个好主意吗
- jQuery函数不能只在一个页面上工作
- 如何将jquery函数链接到vanilla选择器
- 仅在小型设备上调用jQuery函数
- 如何将jquery函数仅应用于大屏幕
- 奇怪的jquery函数行为
- Backbone listenTo不将jquery函数作为处理程序进行激发
- 在jquery函数内部设置来自jquery函数的var;t运行
- 从Jquery函数中获取一个变量