我正在编写一个函数来获取单击元素的“数据屏幕”属性(如果有的话),并根据当前活动屏幕是否与单击元素的相同或不同来采取一些措施。
问题是我的如果检查未定义工作正常,但忽略了第二个条件:
- 如果我点击页面上的其他地方:什么都没有。:D
- 如果我点击主页链接:什么都没有。:D
- 如果我点击新任务:它会在控制台上写。:(
谢谢你的帮助!这是我的代码:
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
,则导致元素不具有停止属性,否则继续。第二个条件:如果第一次检查没问题,它上面有一些“屏幕”,检查是否与页面容器的属性screen
不同。activeScreen
因为如果它们不同,我可以为页面呈现另一个内容。但它们是 EQUALS 并且它一直在控制台上写入,即使它应该停止。