2013-02-03 30 views
5

मुझे स्पैन के अंदर पाठ को बदलने के बाद, span पर आग लगाने के लिए jQuery की resize ईवेंट प्राप्त करने में समस्या हो रही है।कोणीय जेएस/jQuery: अवधि में पाठ बदलना आकार बदलना नहीं है

मैं एक AngularJS निर्देशों का उपयोग span तत्व को ईवेंट हैंडलर्स को लागू करने हूँ:

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(); 
     }; 
    }]); 

लेकिन मैं कॉलबैक आग नहीं दिखाई दे रही है जब span परिवर्तन के अंदर का पाठ। यदि यह प्रासंगिक है: एक एम्बेडेड AngularJS अभिव्यक्ति का उपयोग कर पाठ बदल दिया जा रहा है। http://jsfiddle.net/KkctU/13/

उत्तर

3

आकार घटना अंतराल की तरह दस्तावेज़ के अंदर तत्वों के लिए नहीं होती:

मेरे वास्तविक (पूर्ण) कोड स्निपेट पर jsFiddle पर देखा जा सकता है। यह केवल खिड़की पर उपयोग के लिए बनाया गया है।

Here is a plugin that might help you। मैंने इसका इस्तेमाल नहीं किया है, लेकिन ऐसा लगता है जैसे यह आपके लिए सही रास्ते पर है।

अंत में, हालांकि, इसके बावजूद आपके निर्देश में घड़ी को स्थापित करना बेहतर/आसान हो सकता है, फिर यह देखने के लिए जांचें कि टेक्स्ट बदलते समय ऊंचाई और चौड़ाई बदल गई है या नहीं। http://www.w3schools.com/jsref/event_onresize.asp:

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

'onresize' घटना काफी हर तत्व प्रकार पर समर्थित किया जा रहा है: बस एक विचार के रूप में। क्या यह jQuery 'आकार' हैंडलर से संबंधित नहीं है? – sheu

+1

W3SCHOOLS खराब है ... मैंने वहां कहा था। हमेशा अपने लिंक छोड़ें। हमेशा। [यहां इस मामले पर मोज़िला का पृष्ठ है] (https://developer.mozilla.org/en-US/docs/DOM/element.onresize) ... केवल विंडो ही ईवेंट को बढ़ाएगी। –

+3

[दोस्तों दोस्तों को w3schools का उपयोग नहीं करते हैं] (http://w3fools.com/)। कल्पना देखें: http://www.w3.org/TR/DOM-Level-3-Events/#event-type-resize –