我有一个列有木偶应用程序的应用程序。这是一个CompositeView。当用户单击列表中的项目(CompositeView)时,我将一些css样式应用于ItemView以使其显示为选中状态。我在ItemView的click事件中这样做。很简单。Marionette js - 以编程方式查找并单击CompositeView中的ItemView
但我也希望将该列表选择转换为查看同一应用程序的其他浏览器。因此,用户在浏览器1中选择项目#3,并且该选择反映在那里以及浏览器2中。
问题是存在的浏览器没有点击2.
我使用SignalR连接的浏览器。连接工作正常。当在浏览器1中选择项目#3时,我将数字3传递给另一个浏览器。
当我在那边3时,我不知道该如何处理它。
由于没有浏览器2中的点击,我想我必须找到正确的ItemView并通过编程方式通过JQuery .click()单击它。我无法在木偶js CompositeView文档中看到任何东西,这些文档让我获得了我期待的ItemView。我错过了明显的东西吗?这是一个坏方法吗?
UPDATE:
我结束了与Selvaraj答案去,因为我有必要包括两种情况 - 点击和非点击(远程)。点击案例的代码在该答案中被重用。但是我也可以为威尔伯特的答案提供一个案例。
我在我的CompositeView中找到了一个正确的选择器并点击它的函数。正确的选择器是我的ItemView的el的父级,因为设置动态ID锁定的唯一位置是在ItemView模板中,当然,这个模板绑定了ItemView包装元素的子元素。
selectItem: function (itemNum) {
var selector = this.$el.find('#model_' + itemNum).parent();
selector.click();
},
感谢您的帮助。
对不起。一点困惑。我没有视图选择器。我所有的是一个索引 - “3”。我如何将其转换为所需的选择器?或者你是否说有一种方法可以为CompositeView儿童提供独特的选择器? – Robert
啊..我明白了。我可以添加模板。现在试试这个... – Robert