gpt4 book ai didi

backbone.js - 在backbone.js的另一个 View 中使用时listenTo不起作用

转载 作者:行者123 更新时间:2023-12-04 18:09:49 24 4
gpt4 key购买 nike

我是主干的新手。我有一个名为 AbcView 的 View
abc.js

var AbcView = Backbone.View.extend({

events: {
"click" : "display",
},
display: function(e){
console.log("hello");
alert("click function");
}
});

现在我将这个 abc.js 传递给另一个 xyz.js 文件并使用 ListenTo 在另一个 View 中调用它。
xyz.js
var xyzView = Backbone.View.extend({
initialize: function(){
var AbcView = new AbcView ();
this.lisenTo(AbcView, "click",this.display);
},
render: function(){
var html = this.template(AbcView);
this.$el.html(html);
return this;
},
display: function(e){
console.log("parent hello");
alert("parent display function");
}
});

使用 abc.js 点击事件触发正常。但是使用 xyz.js 的点击事件不会触发。

这是调用listenTo的正确方法吗?

最佳答案

DOM 事件不委托(delegate)给 View 对象。

如果你想模拟这个,你必须在 ABC display 中手动发出事件。方法:

display: function(e){

// Trigger manually
this.trigger("click");

// Your usual code
console.log("hello");
alert("click function");
}

就最佳实践而言,我可能会将“点击”重命名为更具描述性的事件名称。

关于backbone.js - 在backbone.js的另一个 View 中使用时listenTo不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16897154/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com