为什么这个片段不起作用?

时间:2014-02-20 22:55:26

标签: javascript jquery

任何人都可以帮我找到我的小片段有什么问题吗?

$(window).on("load resize", function() {
   if ($(window).width() < 770) {
      $(".side-by-side.right div").each(function() {
          $(this).insertAfter($(this).parent().find('img'));
      });
   } else {
      $(this).insertBefore($(this).parent().find('img'));
   }
});

在其他地方上方的第一个命令可以工作,但是在其他事情发生之后,我做错了什么?我很肯定它是一个像}或者地方那样微小的东西,或者可能忘了添加;某处!

http://jsfiddle.net/fD265/

2 个答案:

答案 0 :(得分:1)

在else语句中,您尝试引用窗口对象的父级。这就是为什么它没有做任何事情 - 没有窗口对象的父级。

第一部分(if)有效,因为在那个.each()中,$(this)将引用你的div元素。 else中的$(this)仍指向窗口。

修复它将取决于你想要做什么 - 我无法真正说出来。但是,这至少是为什么它不起作用。 : - )

答案 1 :(得分:0)

既然不清楚,你想要实现什么,这可能是,你在寻找什么?

$(window).on("load resize", function() {
    if ($(window).width() < 770) {
        $(".side-by-side.right div").each(function() {
            $(this).insertAfter($(this).parent().find('img'));
        });
    } else {
        $(".side-by-side.right div").each(function() {
            $(this).insertBefore($(this).parent().find('img'));
        });
    }
});

在else块中,this引用窗口而不是对象,您要编辑。