2015-10-16 56 views
0

我使用jQuery與視口找到一個類,並根據窗口的寬度刪除它。加載視窗/調整大小查找類刪除jQuery

想象一下,我們有我們的目標與調整大小和移動版本與重新加載的桌面版本。代碼運行良好,但在destkop上存在一個問題。

$(window).load(function() { 
    var viewportWidth = $(window).width(); 
    if (viewportWidth < 600) { 
     $(".dropdown-toggle").removeClass("disabled"); 
    } 
}); 

$(window).resize(function() { 
    var viewportWidth = $(window).width(); 
    if (viewportWidth < 600) { 
     $(".dropdown-toggle").removeClass("disabled"); 
    } 
}); 

$(window).load(mobileViewUpdate); 
$(window).resize(mobileViewUpdate); 

我得到這個錯誤,指出:

Uncaught ReferenceError: mobileViewUpdate is not defined

看着這個代碼我在做什麼錯在這裏得到這個錯誤?

回答

0

查看此代碼,mobileViewUpdate沒有在其中的任何位置定義。

+0

我正在從包含在頁面底部的/main.js文件中執行此代碼。不內聯。如何定義mobileViewUpdate? – gx2g

0

玩了一段時間後,我能夠這樣做。不知道它是否是最優化的方式,但效果很好。

$(window).resize (function() { 
     // This will fire each time the window is resized: 
     if($(window).width() <= 600) {$(".dropdown-toggle").removeClass("disabled");} 
     }) 
    .resize(); 

    $(window).load (function() { 
     // This will fire each time the window is resized: 
     if($(window).width() <= 600) {$(".dropdown-toggle").removeClass("disabled");} 
     }) 
.load(); 

我應該得到一個新的徽章,以找出我自己的! :)

1

I'm getting this error stating:

Uncaught ReferenceError: mobileViewUpdate is not defined

沒錯:你調用一個名爲mobileViewUpdate()功能,但在你的代碼中定義沒有這樣的功能。此外,即使mobileViewUpdate()存在,調用它也是沒有必要的,因爲您在loadresize事件中已經具有匿名功能,正在執行您所需的任務。

所以,對於初學者來說,你可以簡單地刪除這些兩行:

$(window).load(mobileViewUpdate); 
$(window).resize(mobileViewUpdate); 

另外,你的兩個匿名函數是相同的 - 他們只是開槍不同的事件。所以你可以像這樣合併它們:

$(window).on("load resize", function() { 
    var viewportWidth = $(window).width(); 
    if (viewportWidth < 600) { 
     $(".dropdown-toggle").removeClass("disabled"); 
    } 
});