我使用backbone.js
來創建一個簡單的嚮導。使用jquery在表單元素之間導航
在嚮導中,我有2個文本框和一個下拉菜單和2個按鈕。表單元素一次顯示一個,我使用.hide()/.show()
隱藏或顯示元素。
我希望用戶能夠使用2個按鈕向前和向後導航,但我無法弄清楚如何以簡單高效的方式對.show()/.hide()
邏輯進行編碼。
這裏是我的簡單形式:
<div id="titleDiv" class="control">
<label for="title">Title:</label>
<input type="text" />
</div>
<div id="choicesDiv" class="control" style="display: none;">
<label for="choices">Choices:</label>
<input type="text" />
</div>
<div id="typeDiv" class="control" style="display: none;">
<label for="types">Types:</label>
<select name="type">
<option>red</option>
<option>blue</option>
<option>green</option>
</select>
</div>
<div id="directionControl">
<input type="button" class="prev" value="Prev" />
<input type="button" class="next" value="Next" />
</div>
下面是相關的js/jQuery的:
events: {
'click .next': 'saveProceedNext',
'click .prev': 'ProceedPrev'
},
saveProceedNext: function() {
this.model.save(); //save before moving to the next input
this.$('.control').hide(); //hide current
this.$('#choicesDiv').show(); //show the next one...how to reference this without
任何想法? },
ProceedPrev: function() {
}
我得到這個錯誤:TypeError:steps [this.currentStep] .hide不是一個函數...不知道爲什麼,因爲我用[]應該告訴它它是一個數組 – SkyeBoniwell
我修正了我的例子。 TypeError是因爲訪問jQuery對象的特定索引會刪除jQuery包裝器。只需要用$(steps [this.currentStep])重新應用包裝。 –