2012-09-11 45 views
0

這工作:如何正確地使這個JS片段內容不可知?

http://jsfiddle.net/4XQ2u/16/

然而,其中的代碼等不好的東西,你可能會注意到,大量添加的東西,如:

val('Remove Translation Fields'); 

val('Add Translation Fields'); 

讓我們想象我們需要重新使用這個腳本,這個功能,這個交互和那個,而不是添加或刪除「tra」 nslation「,我們希望添加或刪除」更多細節「,或添加或刪除」任何其他類型的任何其他字段集「 - 或者,例如,讓我們想象我們需要翻譯這個應用程序... 一個糟糕的JavaScript像這樣,這會迫使我們每次應用程序內容發生變化時,都必須相應地編輯此JavaScript。

我是相當新的JavaScript(jQuery的)和編程一般,所以我想問一下:

什麼選擇做一個不得不做出這個腳本內容的變化無關?

如果相關,請注意這是使用Yii框架的PHP MVC應用程序的一部分。

+0

我會在你的PHP中處理本地化,然後用你的JavaScript顯示/隱藏元素。 –

+0

@JamesSouth所以,而不是val('刪除翻譯字段'),我們應該有什麼? - 請注意這是一個非常基本的問題,因爲我在這裏相當新。 – MEM

+0

我可能會有兩個按鈕。其中一個隱藏起來。然後切換這些按鈕的可見性。這樣你只在頁面中編輯內容。 –

回答

1

我會這樣做的方式是隻處理HTML中的內容和任何本地化語言,貨幣,計算在您的PHP info here。然後,可以使用JavaScript來操作標記來執行行爲任務,從而使您的問題很好地分開。

例如。在你的實例中,我只需要兩個按鈕,其中一個按鈕隱藏在使用css的負載中,並根據頁面中發生的事件切換它們。

我已經更新了原來的小提琴,以反映一些簡單的變化here

+0

我已經嘗試了您親切的代碼。但我仍然有問題。再次,我想知道如果切換可以在這裏適合。在某些情況下,可以在開始時渲染「兩個」字段集。如果您編輯小提琴並在那裏添加「兩個」字段集,您將會看到注意到按鈕的無意義。這是一個邏輯問題,還是此場景的切換限制? http://jsfiddle.net/4XQ2u/43/ – MEM

+0

這個限制是基於'if($('#localized fieldset')這一行。length === 1)'Toggle只是真的改變了按鈕的可見性,它本質上是一個邏輯問題。我已更新我的鏈接來解決這個問題。 –

+0

謝謝。確實是一個邏輯問題。我最終改變了很多切換。 :s – MEM