[英]Why my IF isn't working properly?
我正在对一个函数进行编码,以获取被单击元素的“数据屏幕”属性(如果有的话),并根据当前活动的屏幕与被单击元素的屏幕相同还是不同来采取一些措施。
问题是我的如果对未定义的检查很正常,但忽略了第二个条件:
谢谢你的帮助! 这是我的代码:
的HTML
<li><a data-screen="home" href="#">Home</a></li>
<li><a data-screen="new-quest" href="#">New Quest</a></li>
<div id="container" data-screen="new-quest"></div>
JAVACSCRIPT
function getScreen(){
var body = $('body'),
activeScreen = $('#content').attr('data-screen'),
screen;
body.on('tap',function(e){
screen = $(e.target).attr('data-screen');
if(screen != undefined && screen != activeScreen){
console.log('Target <data-screen>: ' + screen);
console.log('Active Screen: ' + activeScreen);
}
});
}
条件应该是这样的:
screen
获取被单击元素的data-screen
值。 第一个条件:如果screen
undefined
,则导致元素不具有stop属性,否则继续前进。 第二个条件:如果第一个检查通过,则它上面有一些“屏幕”,请检查screen
是否与作为页面容器属性的activeScreen
有所不同。
因为如果它们不同,我可以为页面呈现其他内容。 但是它们是相等的,即使它应该停止,它仍在控制台上继续编写。
实际上,您的代码(除了输入错误)正在按预期工作,如以下小提琴所示:
将<div id="content" data-screen="home">
更改为<div id="content" data-screen="new-quest">
以测试另一种情况。
编辑:我确实修复了上面答案中提到的错字,但是我认为那只是您删除所有$时的错字。
同样,如评论中所述,仅在准备好文档后才确定活动屏幕。 如果您要创建一个单页应用程序,则将无法按预期的方式运行! 在这种情况下,每次加载新视图时,您都必须更新活动屏幕变量。
您输入的变量有错字吗? 一个流浪的美元?
screen != undefined && $screen != activeScreen
成为
screen != undefined && screen != activeScreen
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.