2014-08-29 77 views
-1

我想如果一個瀏覽器寬度超過640像素加載外部JS文件,並且如果瀏覽器的寬度低於640像素除去同一JS文件。動態加載和除去外部JS

這裏是我到目前爲止有:

function setSize() { 
    var state = $(window).width() < 640; 
    if (state != currentState) { 
    currentState = state; 
    if (state) { 
     $.load("js/test.js"); 
    } else { 
     $.remove("js/test.js");; 
    } 
    } 
} 

setSize(); 
$(window).on('resize', setSize); 

我知道該功能的作品,但我不知道如何加載和刪除外部JS。

感謝

UPDATE

var currentState = false; 

function setSize() { 
var state = $(window).width() < 640; 
if (state != currentState) { 
currentState = state; 
if (state) { 
    var elem = document.getElementById('mySwipe'); 
$(".pagination li").eq(0).addClass("selected"); 
window.mySwipe = Swipe(elem, { 
    auto: 3000, 
    continuous: true, 
    // disableScroll: true, 
    // stopPropagation: true, 
    // callback: function(index, element) {}, 
    callback: function(index, element) { 
     var $Elements = $(".pagination li").removeClass("selected"); 
     $Elements.eq(index).addClass("selected"); 
    }, 
    // transitionEnd: function(index, element) {} 
}); 

var $navLi = $('#nav li'); 
$navLi.on ('click', function() { 
    window.mySwipe.slide($(this).index(), 200); 

    $(this).siblings().removeClass('selected'); 
    $(this).addClass('selected'); 
}); 

$('#mySwipePrev').on('click', function() { 
    mySwipe.prev(); 
    $navLi.removeClass('selected'); 
    $navLi.eq(mySwipe.getPos()).addClass('selected'); 
}); 
$('#mySwipeNext').on('click', function() { 
    mySwipe.next(); 
    $navLi.removeClass('selected'); 
    $navLi.eq(mySwipe.getPos()).addClass('selected'); 
}); 

} else { 

} 
    } 
} 

setSize(); 
$(window).on('resize', setSize); 
+1

我不認爲你可以叫去除,製成這種方法來去除DOM元素 - 見http://api.jquery.com/remove/我不認爲有什麼辦法「刪除」一個當頁面被加載後執行。你想要做的是編寫一些邏輯來取消test.js的功能。 – 2014-08-29 13:06:30

+0

你不能輕易刪除外部的JS,但你可以有條件地包括一個或另一個。 – MightyPork 2014-08-29 13:07:40

+0

@AlexanderKludt我正在嘗試這樣做,如果瀏覽器低於640px添加一個腳本,我可以得到這個工作,但是當我改變寬度超過640px,那麼腳本保持,我需要刷新。我會更新帖子給你看我的代碼 – Dan 2014-08-29 13:09:52

回答

0

您可以將一些HTML代碼保持元件加載的文件中像股利或跨度

$("#someDivElement").load("js/test.js"); 

,並刪除

$("#someDivElement").remove(); 
0

你只是cann不要從頁面中刪除js引用。但是,你可以添加一個如下

window.onload = function() { 
    var s = document.createElement('script'); 
    s.type = 'text/javascript'; 
    s.src = '_foo.js'; 
    document.body.appendChild(s); 
} 

因此,你不應該添加一個靜態引用到您的網頁,但它添加動態地根據你的條件。