Return 切换后的按钮文本
Return button text after toggle
我有以下 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);
}
}
};
页面上有多个 'triggers' 打开它们的相邻表单。在 toggleForm 函数内部,'if' 语句确定按钮的文本。我存储按钮的当前文本,这样如果表单打开,我可以将按钮更改为 "Close Form" 或 return 到其原始文本。但是,currentText 变量在成为 currentTarget 时存储 "Close Form" 文本。我怎样才能确保按钮的文本 return 恢复到其原始状态?
可以将原文存入jQuery的data()
var $ = require('jquery');
module.exports = {
trigger : '.form-trigger',
form : '.financial-form',
init : function() {
$(this.trigger).click(this.toggleForm.bind(this));
},
toggleForm: function(e) {
e.preventDefault();
var currentTarget = $(event.currentTarget),
flag = $(this.form).data('flag');
currentTarget.next(form).slideToggle("fast");
if ( !currentTarget.data('text') ) {
currentTarget.data('text', currentTarget.text());
}
currentTarget.text(flag ? currentTarget.data('text') : "Close Form");
$(this.form).data('flag', !flag);
}
};
我有以下 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);
}
}
};
页面上有多个 'triggers' 打开它们的相邻表单。在 toggleForm 函数内部,'if' 语句确定按钮的文本。我存储按钮的当前文本,这样如果表单打开,我可以将按钮更改为 "Close Form" 或 return 到其原始文本。但是,currentText 变量在成为 currentTarget 时存储 "Close Form" 文本。我怎样才能确保按钮的文本 return 恢复到其原始状态?
可以将原文存入jQuery的data()
var $ = require('jquery');
module.exports = {
trigger : '.form-trigger',
form : '.financial-form',
init : function() {
$(this.trigger).click(this.toggleForm.bind(this));
},
toggleForm: function(e) {
e.preventDefault();
var currentTarget = $(event.currentTarget),
flag = $(this.form).data('flag');
currentTarget.next(form).slideToggle("fast");
if ( !currentTarget.data('text') ) {
currentTarget.data('text', currentTarget.text());
}
currentTarget.text(flag ? currentTarget.data('text') : "Close Form");
$(this.form).data('flag', !flag);
}
};