2013-02-03 10 views
5

Mam problem z pobieraniem zdarzeniajQuery na span, po zmianie tekstu wewnątrz przęsła.AngularJS/jQuery: zmiana tekstu w zakresie nie powoduje zmiany rozmiaru zdarzenia

mam stosowaniu obsługi zdarzeń do elementu span stosując angularjs dyrektywy:

angular.module("test.directives", []) 
    .directive("trackSize", ["$parse", function($parse) { 
     return function(scope, element, attrs) { 
      function callback() { 
       var size = { w: element.width(), h: element.height() }; 
       scope[attrs.trackSize].call(scope, size); 
      } 
      element.on("resize", function() { 
       console.log("resize"); 
       scope.$apply(callback); 
      }); 
      callback(); 
     }; 
    }]); 

ale nie widzę ogień oddzwonienia, gdy tekst wewnątrz span zmian. Jeśli jest to istotne: tekst jest zmieniany za pomocą wbudowanego wyrażenia AngularJS.

Moja rzeczywista (pełne) Fragment kodu może być postrzegane na jsFiddle w: http://jsfiddle.net/KkctU/13/

Odpowiedz

3

Zdarzenie zmiany rozmiaru nie jest przeznaczona dla elementów wewnątrz dokumentu jak rozpiętości. Jest przeznaczony do użytku tylko w oknie.

Here is a plugin that might help you. Nie użyłem tego, ale wygląda na to, że jest dla ciebie odpowiedni.

W końcu może być lepiej/łatwiej ustawić zegarek w dyrektywie, niezależnie od tego, co jest z nim związane, a następnie sprawdzić, czy wysokość i szerokość uległy zmianie po zmianie tekstu. Pomysł:

app.directive('trackSize', function() { 
    return function(scope, element, attrs) { 
     var w = element.width(), 
      h = element.height(); 
     scope.$watch(attrs.trackSize, function(v) { 
      element.text(v); 
      var w2 = element.width(), 
       h2 = element.height(); 
      if(w != w2 || h != h2) { 
       //TODO: do something here, the size has changed. 
      }   
     }); 
    } 
}); 
+1

Wydarzenie 'onresize' wydaje się być obsługiwane praktycznie we wszystkich typach elementów: http://www.w3schools.com/jsref/event_onresize.asp. Czy to nie koreluje z obsługą 'resize' jQuery? – sheu

+1

W3SCHOOLS IS BAD ... tam to powiedziałem. Zawsze pomijaj ich linki. ZAWSZE. [Tutaj jest strona Mozilli] (https://developer.mozilla.org/en-US/docs/DOM/element.onresize) ... tylko okno podniesie wydarzenie. –

+3

[Znajomi nie pozwalają znajomi używać w3schools] (http://w3fools.com/). Sprawdź specyfikację: http://www.w3.org/TR/DOM-Level-3-Events/#event-type-resize –

Powiązane problemy