动态加载和删除外部js

时间:2014-08-29 13:03:08

标签: jquery

如果浏览器宽度超过640px,我想加载外部js文件;如果浏览器宽度低于640px,我想删除相同的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。

由于

更新

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);

2 个答案:

答案 0 :(得分:0)

您可以将加载的文件放在某个html holder元素中,例如div或span

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

并删除

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

答案 1 :(得分:0)

您无法从页面中删除js引用。但你可以添加一个

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

因此,您不应该向页面添加静态引用,而是根据您的条件动态添加它。