1
後,我有以下的陣營組成:返回按鈕文字撥動
var $ = require('jquery');
module.exports = {
trigger: '.form-trigger',
form: '.financial-form',
init: function() {
$(this.trigger).click(this.toggleForm.bind(this));
},
toggleForm: function(e) {
// define currentTarget
var currentTarget = $(event.currentTarget);
// define current Text
var currentText = currentTarget.html();
// Prevent anchor click default
e.preventDefault();
// Remove any active classes
currentTarget.next(form).slideToggle("fast");
// console.log(currentText);
if ($(this.form).is(":visible")){
// $(element).is(":visible")
currentTarget.html("Close Form");
} else {
currentTarget.html(currentText);
}
}
};
有其開拓自己相鄰的形式頁面上有多個「觸發器」。在toggleForm函數內,'if'語句確定按鈕的文本。我將按鈕當前的文本存儲,以便如果窗體打開,我可以更改爲「關閉窗體」,或者將按鈕返回到其原始文本。然而,currentText變量正在存儲「Close Form」文本,因爲它變成了currentTarget。我怎樣才能確保按鈕的文字恢復到原來的狀態?
感謝您的答覆原文但這不起作用。即使窗體關閉,按鈕的文本仍然是「關閉窗體」 – JordanBarber
您確定邏輯正確嗎?特別注意'is(':visible')'不適用於動畫方法,因爲元素總是在滑動時可見等,但是它不是很清楚表單是什麼,爲什麼使用'currentTarget'而不是' this'和'this.form'等? – adeneo
我做了一些編輯,試試? – adeneo