我有一個列有木偶應用程序的應用程序。這是一個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