2013-05-03 92 views
0

我正在將Excel應用程序轉換爲單個網頁應用程序。由於我希望用戶感覺熟悉,因此我希望在用戶更改輸入時實時更新所有內容,就像在Excel中一樣。它工作的很好,但由於不同的輸出標籤依賴於彼此,它開始變得混亂。將聽衆添加到標籤

無論如何,我可以添加一個listner到標籤,而不是當用戶在文本框中輸入輸入時爲標籤設置一個值?

+3

你可以用jQuery做到這一點,但過了一段時間它會變得非常複雜和難以維護。我會建議使用像Knockout.js或Backbone.js可能AngularJS的東西。 – Nomad101 2013-05-03 08:23:22

+0

我同意@ Nomad101。 jQuery可以工作,但只有少量的更改..其他方面,你會失去。 – 2013-05-03 08:28:36

+0

是的。我知道我應該使用mvc框架。看到我以前的問題。 http://stackoverflow.com/questions/16268331/should-i-use-a-mvc-javascript-framwork-for-this-application。這只是一個「概念證明」。這並不是很多控件,所以我希望可以用jquery來實現它。如果我會得到一個命令來製作完整版本,我會重寫和學習一個mvc框架。 – Per 2013-05-03 08:48:58

回答

0

正如我在我的評論中所說的......我並不鼓勵你這樣做,但如果你有少量元素需要改變,那麼.change()就是你可以用來實現你需要的功能。

你可以看到在這個網站的工作示例: jQuery change() example

0

好到我原來的問題意見擴大。雖然,你問的是絕對可能與jQuery。像電子表格這樣複雜的東西需要大量的jQuery引用和連接代碼,如果不是完全的話,加班將變得幾乎不可持續。

但是要回答您的問題,您希望最有可能綁定到輸入問題的onChange事件。這將允許您在整個UI中獲得幾乎即時更新。像這樣的東西可以很容易地工作,要做到這一點:

$("#InputInQuestion").on("change", function(e) { //Do Something });

這種做法最終會導致一些非常難以閱讀和努力,你通過這種應用程序的進度維護的代碼。試想一下,在電子表格樣式應用程序中爲每一個事件編寫這種函數,你可能會得到爲什麼你應該遠離這種方法。

有許多可行的框架可以讓你所要求的幾乎是無關緊要的關鍵詞。

Knockout.js例如附帶一個映射插件,它允許您動態地將服務器數據映射到HTML中的對象。所有這些對象都將在應用程序的整個生命週期中動態設置。我的意思是,當你的單元格中的任何一個值發生變化時,你都可以得到期望的效果,讓其餘的ui變化以反映這一點,而不必編寫大量的連接編碼。

他們的網站http://knockoutjs.com/有一些關於如何開始真棒教程。

AngularJS也是一個了不起的工具用於製作堅固和響應UI的,你可以在這裏看看:http://angularjs.org/

Backbone.js的非常類似上面這可以在這裏找到:http://backbonejs.org/