2012-04-14 7 views
0

gebrochen wurde Ich habe ein Stück Code, der in 1.3.2 gut funktioniert und ist in 1.7.1 gebrochen kann jemand mich auf was hinweisen, wenn nicht korrekt mit der Code:Jquery Code, der nach dem Upgrade auf 1.7.1 von 1.3.2

(function($){ 
$.fn.extend({ 
    autoscroll: function(options) { 
     return this.each(function() { 
      var $this = $(this); 
      $this.css({overflow:'hidden'}); 
      if(options == 'horizontal') $this.mousemove(function(e) { 
       var width = $this.width(); 
       $this.attr({ scrollLeft: ($this.attr('scrollWidth')-width)*(0.5-Math.cos(Math.PI*(e.pageX-$this.offset().left)/width)/2) }); 
      }); 
      else if(options == 'vertical') $this.mousemove(function(e) { 
       var height = $this.height(); 
       $this.attr({ scrollTop: ($this.attr('scrollHeight')-height)*(0.5-Math.cos(Math.PI*(e.pageY-$this.offset().top)/height)/2) }); 
      }); 
      else if(options == 'both') $this.mousemove(function(e) { 
       var width = $this.width(), height = $this.height(); 
       $this.attr({ scrollLeft: ($this.attr('scrollWidth')-width)*(0.5-Math.cos(Math.PI*(e.pageX-$this.offset().left)/width)/2), scrollTop: ($this.attr('scrollHeight')-height)*(0.5-Math.cos(Math.PI*(e.pageY-$this.offset().top)/height)/2) }); 
      }); 
      else $this.mousemove(function(e) { 
       var width = $this.width(), height = $this.height(); 
       $this.attr({ scrollLeft: ($this.attr('scrollWidth')-width)*(0.5-Math.cos(Math.PI*(e.pageX-$this.offset().left)/width)/2), scrollTop: ($this.attr('scrollHeight')-height)*(0.5-Math.cos(Math.PI*(e.pageY-$this.offset().top)/height)/2) }); 
      }); 
     }); 
    } 
}); 
})(jQuery); 
+7

Welche Fehlermeldung (en) bekommen Sie? – j08691

+2

Warum nicht den Standard-js-Konventionen folgen? Ihr Code wäre viel einfacher zu debuggen, wenn Sie Ihre 'if else'-Anweisungen in geschweiften Klammern richtig einschließen. {}' – elclanrs

+0

Zwischen diesen beiden Versionen gab es eine Fülle von Änderungen. Der Versuch, ein Upgrade durchzuführen, verlangt wahrscheinlich nur, dass große Teile davon neu geschrieben werden. Versuchen Sie, in Zukunft mit Upgrades Schritt zu halten und Probleme zu vermeiden, die Sie selbst nicht lösen können. Fehlende Klammern helfen auch nicht. – sg3s

Antwort

2

Verwenden Sie attr() nur für HTML-Attribute. Für JS/DOM-Eigenschaften (z. B. scrollWidth, scrollTop) verwenden Sie prop()

prop() wurde in v1.6 eingeführt.

Demo: http://jsfiddle.net/doktormolle/uKMWQ/

+0

Das ist etwas, worüber ich mich gewundert habe. Haben Sie Unterlagen oder weitere Informationen? –

+0

http://api.jquery.com/prop/ –

+0

Die Verknüpfung mit den jQuery-Dokumenten ist zwar nützlich, aber nicht das, was ich meinte. –

Verwandte Themen