2012-06-22 68 views
0

我在理解preventDefault函數的工作方式時遇到了問題。 我創建了一個簡單的jsfiddle,但仍然選擇和擴展工程,並沒有阻止。KendoPanelBar PreventDefault

http://jsfiddle.net/XRfKb/15/

任何幫助表示讚賞,感謝。

編輯: 如何防止選擇頁面無效?以下是一段代碼:

panelBar.bind("select", function (e) { 
    //some code here 
    if (!isValid) { 
      e.preventDefault(e); //doesn't work 
      //this.select('#firstStep'); //doesn't work 
     } 
    }); 
+1

我在獨立的visual studio解決方案中試過了你的代碼,它工作正常,preventDefault阻止擴展面板。我注意到的一件事是包含在小提琴中的kendo.web.min.js是一個較老的版本。我使用Kendo UI Web v2012.1.515進行測試。 – Igorrious

回答

0

我最終通過在PanelBar中使用簡單的「單擊」事件來代替PanelBar的「select」事件。

e.preventDefault和e.stopPropagation可以正常工作。

2

的確,您使用的是過去一年的舊版本。我相應地更新了您的jsFiddle: http://jsfiddle.net/XRfKb/18/

當前選擇事件不能被阻止。從下一版本開始,select事件可以阻止鏈接導航,但不會實際選擇該項目。我們也可以考慮防止選擇。

+0

好的,但我怎樣才能防止選擇PanelBar?想象一下,我使用它來驗證後移動到下一個視圖。目前,當我單擊PanelBar中的下一個項目時,它將被選中,如果頁面無效,那麼視圖保持不變,但PanelBar中的選定項目是錯誤的。我試圖綁定到「選擇」事件,並在某些條件下調用e.preventDefault(這不像你說的那樣工作)。我也嘗試在相同條件下再次調用PanelBar select方法返回到上一個項目,但那不起作用。你能提出一些建議嗎?我更新了主帖。 –