【发布时间】:2016-02-27 19:34:48
【问题描述】:
我有以下 React 组件:
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 变量存储“关闭表单”文本,因为它变成了 currentTarget。如何确保按钮的文本恢复到原始状态?
【问题讨论】:
标签: javascript jquery if-statement reactjs state