我的牵线木偶LayoutView中有一个函数,它有以下ui和事件块:
ui: {
runAction: ".picasso-form-action-run"
},
events: {
"click @ui.runAction": "runFilter"
},
runFilter函数如下所示:
runFilter: function(e) {
e.preventDefault();
e.stopPropagation();
var _this = this;
_this.ui.runAction.addClass('processing');
_this.ui.runAction.text('Processing');
_this.ui.runAction.attr('disabled', 'disabled');
setTimeout(function() {
_this.trigger("whiteboard:data:refresh"); // this fetch data
}, 5);
}
我的问题是,我需要在获取新数据之前更改runAction按钮的文本,但我能让它工作的唯一方法是为触发器添加超时。这似乎是一个黑客,并想知道这是做什么的正确方法。
侦听触发器的对象,从数据库加载新数据并呈现区域。
请帮助。
答案 0 :(得分:0)
我可以看到你正在使用
e.preventDefault();
e.stopPropagation();
这可能是因为您提交了一个提交并重新加载页面的按钮。尝试使用类型="按钮"定义按钮。像这样:
<button id="myButton" type="button" />
这可以防止您捕获刷新页面的事件,并希望能够呈现您想要的内容。