有什么原因使我不应该执行以下操作(以避免使用隐藏字段存储临时信息)?为了简洁起见,我使用jQuery语法,但这是一个常见的JavaScript问题。

function editComments() {
    window.currentComments = $('#commentsTextBox').val();
    $('#commentsTextBox').removeAttr("readonly");
}

function cancelEditComments() {
    $('#commentsTextBox').val(window.currentComments);
    $('#commentsTextBox').attr("readonly", "readonly");
}

我知道全局变量通常被认为是不好的做法,但是执行上述操作真的有问题吗?

除非您给出原因/解释,否则请不要回答或评论“全局变量是邪恶的”。

最佳答案

除了全局变量是邪恶的之外,这没有什么真正的问题。 ;)

但是,如果我仍然使用jQuery,我认为更好的方法是使用 data() 将其存储在元素中:

function editComments() {
    $('#commentsTextBox').data("oldValue", $('#commentsTextBox').val());
    $('#commentsTextBox').removeAttr("readonly", "readonly");
}

function cancelEditComments() {
var oldValue = $('#commentsTextBox').data("oldValue");
$('#commentsTextBox').val(oldValue );
$('#commentsTextBox').attr("readonly", "readonly");
}

只要将其保留在脚本中,并且对该元素没有其他任何处理,就可以正常工作。

10-06 11:45