繁体   English   中英

为什么我的中频无法正常工作?

[英]Why my IF isn't working properly?

我正在对一个函数进行编码,以获取被单击元素的“数据屏幕”属性(如果有的话),并根据当前活动的屏幕与被单击元素的屏幕相同还是不同来采取一些措施。

问题是我的如果对未定义的检查很正常,但忽略了第二个条件:

  • 如果我单击页面上的其他位置:无。 :D
  • 如果我单击“主页”链接:没什么。 :D
  • 如果我单击New Quest:它将在控制台上编写。 :(

谢谢你的帮助! 这是我的代码:

的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有所不同。

因为如果它们不同,我可以为页面呈现其他内容。 但是它们是相等的,即使它应该停止,它仍在控制台上继续编写。

实际上,您的代码(除了输入错误)正在按预期工作,如以下小提琴所示:

http://jsfiddle.net/LgMYd/

<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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM