javascript - 向在 web.list.Column 的子类中创建的 DOM 元素添加回调

标签 javascript callback openerp odoo-8 openerp-8

我正在尝试修改 web_tree_image 小部件。我不希望在列中显示小图像,而是希望在悬停或单击时显示更大的图像。为了实现这一点,我试图在小部件呈现后添加回调,方法是覆盖 start 函数,如 the documentation 中所述。 .

因此我将以下代码添加到 web_tree_image.js :

openerp.web_tree_image = function (instance) {
    instance.web.list.Image = instance.web.list.Column.extend({
        // [...]
        start: function() {
            console.log("start called");
            // [... add callbacks ...]
        },
        // [...]
    });
};

但是,start 函数从未被调用,所以这不起作用。

我还没有完全理解通常导致 start 被调用的代码路径,但它似乎与 web.list.Column 有所不同。

是否应该调用 start 而我做错了什么?或者在创建 DOM 元素后是否有另一种执行代码的方法?

最佳答案

虽然我仍然不知道为什么没有调用 start 函数,但这是一个解决方法:

openerp.web_tree_image = function (instance) {
    instance.web.list.Image = instance.web.list.Column.extend({
        // ...
        format: function (row_data, options) {
            // ...
            window.setTimeout(function() {
                console.log("DOM ready");
                // ... add callbacks ...
            }, 0);
            // ...
        },
        // ...
    });
};

通过将超时时间为 0 的事件队列添加到事件队列中,可以推迟执行,直到相关的 DOM 元素已按照说明创建完毕 here .

关于javascript - 向在 web.list.Column 的子类中创建的 DOM 元素添加回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33521425/

相关文章:

javascript - 右侧的滑动面板,就像顶部的现有面板一样

iOS:ShareKit >> Twitter 设置 >> 回调 URL --- 它是什么?

javascript - 为 javascript、jQuery 中的异步函数链参数化变量回调

field - 关于odoo的相关领域?

python - <pageCount/> 不在 OpenERP 7 中呈现

php - 在 openerp 上创建 sale.order 时访问被拒绝

javascript - Access-Control-Allow-Origin 不允许 http ://example. com

javascript - 禁用复选框( Material 灯)检查

javascript - AngularJS Promise 链接 $q.all 的最佳实践

javascript - 我如何(真的!)使 JavaScript 异步调用同步(在 Chrome 上)?