[英]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.