Javascript AngularJS/jQuery:在span中更改文本不';t火调整大小事件

Javascript AngularJS/jQuery:在span中更改文本不';t火调整大小事件,javascript,jquery,angularjs,angularjs-directive,Javascript,Jquery,Angularjs,Angularjs Directive,在我更改span中的文本后,我很难让jQuery的resize事件在span上触发 我使用AngularJS指令将事件处理程序应用于span元素: angular.module("test.directives", []) .directive("trackSize", ["$parse", function($parse) { return function(scope, element, attrs) { function callback()

在我更改span中的文本后,我很难让jQuery的
resize
事件在
span
上触发

我使用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表达式更改文本


我的实际(完整)代码片段可以在jsFiddle上看到:

resize事件并不适用于文档中的元素,比如span。它只在窗户上使用

。我没有用过它,但它似乎对你来说是正确的

不过,最后,在指令中对绑定到手表的内容设置一个手表可能会更好/更容易,然后检查文本更改时高度和宽度是否发生了变化。正如一个想法:

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

几乎每种元素类型都支持
onresize
事件:。这与jQuery
resize
处理程序不相关吗?W3S不好。。。我说对了。总是跳过他们的链接。总是。。。只有窗口将引发事件。。看看说明书:@BrandonTilley好吧,好吧;学校不好。我只是一个“ole”系统软件的家伙,正在尝试池塘的Web端。很高兴我提前得到了干预:-)改变文本的大小不是触发元素大小改变的因素吗?去源头。