2013-06-04 57 views
0

HI朋友我必須在手機上打開時禁用視差效果腳本。 我發現了一個類似於我想要和改編的腳本,但它不起作用。任何人都知道什麼是錯的?爲手機禁用腳本

var isMobile = { 
    Android: function() { 
     return navigator.userAgent.match(/Android/i); 
    }, 
    BlackBerry: function() { 
     return navigator.userAgent.match(/BlackBerry/i); 
    }, 
    iOS: function() { 
     return navigator.userAgent.match(/iPhone|iPad|iPod/i); 
    }, 
    Opera: function() { 
     return navigator.userAgent.match(/Opera Mini/i); 
    }, 
    Windows: function() { 
     return navigator.userAgent.match(/IEMobile/i); 
    }, 
    any: function() { 
     return (isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Opera() || isMobile.Windows()); 
    } 
}; 

jQuery(document).ready(function(){ 
if(!isMobile.any()){ 
    $(window).stellar(): false; 
    } 
}); 
+0

你覺得呢'$(窗口).stellar():假;'不? – epascarello

回答

1
jQuery(document).ready(function(){ 
if(!isMobile.any()){ 
    $(window).stellar(): false; 
    } 
}); 

第三行語法錯誤。你究竟想用
fn(): false;這樣的東西來實現?

我相信你正在尋找:

jQuery(document).ready(function(){ 
    if(!isMobile.any()){ 
     $(window).stellar(); 
    } 
}); 

換句話說:只有!isMobile.any()$(window).stellar()執行。在另一種情況下(其中isMobile.any()true),if塊不應執行。

2

$(window).stellar()之後的: false是什麼?我不知道你想在那裏做什麼,或者如果它只是某種複製/粘貼錯誤什麼的,但是,這將使:

SyntaxError: Unexpected token : 

我想你想要這樣的:

jQuery(document).ready(function(){ 
    if(!isMobile.any()){ 
     $(window).stellar(); 
    } 
}); 
+0

我想isdisable,不啓用。 –

+0

什麼?我認爲調用'.stellar()'會啓用視差效果,因此,如果您不在移動平臺上,則只需調用該函數。情況並非如此嗎? – nnnnnn

+0

我需要禁用它時移動.stellar() –

-1

試試這個,

var isMobile = { 
    Android: function() { 
     return navigator.userAgent.match(/Android/i); 
    }, 
    BlackBerry: function() { 
     return navigator.userAgent.match(/BlackBerry/i); 
    }, 
    iOS: function() { 
     return navigator.userAgent.match(/iPhone|iPad|iPod/i); 
    }, 
    Opera: function() { 
     return navigator.userAgent.match(/Opera Mini/i); 
    }, 
    Windows: function() { 
     return navigator.userAgent.match(/IEMobile/i); 
    } 
}; 
var any=(isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Opera() || isMobile.Windows()); 

jQuery(document).ready(function(){ 
    if(!any){ 
     alert('No mobiles'); 
     $(window).stellar(); 
    } 
}); 
+1

你注意到了這個問題!你爲什麼將代碼移出命名空間!這不是問題! – epascarello

+1

'if(!any)'不起作用。你的意思是if(!any())'。 (雖然epascarello說,功能不是問題。) – nnnnnn

+1

@nnnnnn在這裏任何就像一個變量,它可以像'if(!any)'一樣使用。閱讀http://stackoverflow.com/questions/336859/javascript-var-functionname-function-vs-function-functionname –

0

在瀏覽器中打開控制檯。

到這個小提琴:http://jsfiddle.net/vyPjx/

你會看到錯誤

Uncaught SyntaxError: Unexpected token : 

錯誤將指向線

$(window).stellar(): false; 

貌似你試圖使用三元運算符但你不是?

這應該只是

$(window).stellar(); 

如果你打算三元航線它會一直

jQuery(document).ready(function(){ 
    var hasRun = !isMobile.any() ? $(window).stellar() : false;  
});