2012-02-03 49 views
-3

我在jQuery中遇到'if if if'函數的問題。我的代碼的最後兩條語句根本沒有被檢測到,所以當我期望加載頁面時沒有任何反應。有人知道這有什麼問題嗎?else if語句未在jQuery中註冊

function pageloader() { 
    var position = $('#slideInner').css('marginLeft'); 
    if (position >= '-936px') { 
     // load the page contents 
     $('#blogs').load('pagetwo.html #blog'); 
     // hide the loading box 
     loadoff(); 
     $('#portfolio').empty(); 
    } 
    else if (position = '-1872px') { 
     $('#portfolio').load('pagethree.html #homepage'); 
     loadoff(); 
     $('#blogs').empty(); 
    } 
    else if (position = '-2808px') { 
     $('#contact').load('pagefour.html #homepage'); 
     // hide the loading box 
     loadoff(); 
    } 
    else { 
     alert('all posibilities exausted'); 
    } 
} 

回答

5

if條件是錯誤的。

在這兩個系

if (position == '-1872px') 

if (position == '-2808px') 

通過==更換=如果它是一個錯字罰款,否則FYI

if(postion = 'anything') //will always pass the if clause 
+0

非常感謝你,這完美地工作我不能相信我讓我過去該幻燈片,謝謝:) – Alex 2012-02-03 22:55:36

0

操作><應該用來比較的數字而不是字符串。此外,在進行比較時,使用==而不是=,這是賦值運算符,幾乎總是會計算爲真。在你的情況,你會想要的位置轉換到一個號碼:

// position is now a Number 
var position = parseInt($('#slideInner').css('marginLeft')); 

if (position >= -936) { 
    // do something 
} else if (position == -1872) { 
    // do something 
}else if (position == -2808){ 
    // do something 
} else { 
    // do something else 
} 
0

首先,尚卡爾指出,你所需要的「等價」運算符(==)。單個(=)分配給一個總是計算爲真的變量。

由於您正在檢查的條件使其更具可讀性,因此我也會重寫。就像這樣:

function pageloader() 
{ 
var position = $('#slideInner').css('marginLeft'); 

if (position >= '-936px') 
{ 
    // load the page contents 
    $('#blogs').load('pagetwo.html #blog'); 
    // hide the loading box 
    loadoff(); 
    $('#portfolio').empty(); 
    return; 
} 

if (position == '-1872px') 
{ 
    $('#portfolio').load('pagethree.html #homepage'); 

    loadoff(); 
    $('#blogs').empty(); 
    return; 
} 

if (position == '-2808px') 
{ 
    $('#contact').load('pagefour.html #homepage'); 
    // hide the loading box 
    loadoff(); 
    return; 
} 

alert('all posibilities exausted'); 
} 
+0

我不認爲有3個不同的地方,從該函數返回使它更具可讀性。可讀性與問題無關,所以你的回答不會給@尚卡爾的答案添加任何新東西。 – ggreiner 2012-02-03 23:03:07