1

我有一个 ExtJS 窗口:

screenshotWindow = new Ext.Window({bla bla});

打开它就可以了:

screenshotWindow.show();

加载窗口后,我需要调用 jQuery 方法。

$(window).load(function() {
    debugger;
    $("#imageAnn").annotateImage({
        editable: true,
        useAjax: false,
    });
});

我如何/在哪里可以做到这一点?上面所有这些代码都发生在我的 ExtJS 控制器中。itemID 对 from 方法的引用是否正确?

var changingImage = Ext.create('Ext.Img', {
    src: '/images/trafalgar-square-annotated.jpg',
    renderTo: Ext.getBody(),
    itemID: 'imageAnn',
});
4

2 回答 2

3

每个 ExtJS 组件都有一组可以监听的事件:

screenshotWindow = new Ext.Window({
  // ...
  listeners: {
    show: function() {
      // anything you want to do after this component is displayed
    }
  }
});

如果您想在应用程序加载后执行一些操作,您可以使用Ext.onReady()

Ext.onReady(function() {
  // app has been loaded and is ready to use
});

我通常建议不要混合使用 jQuery 和 ExtJS,因为它们遵循不同的范例并在不同的抽象级别上运行。在 ExtJS 应用程序中需要 jQuery 通常意味着你做错了什么(除非你依赖于一些高度专业化的 jQuery 插件......)

于 2013-09-16T14:45:50.550 回答
1

我不熟悉 ExtJS,但看起来你会这样做......

screenshotWindow.show(this, function(){
  $("#imageAnn").annotateImage({
    editable: true,
    useAjax: false,
  });
});

基于这个例子:http ://docs.sencha.com/extjs/4.2.1/extjs-build/examples/window/layout.html

于 2013-09-16T14:11:55.767 回答