gpt4 book ai didi

javascript - 如何从 html 可访问标记使用或创建非全局 JavaScript 变量缓存

转载 作者:行者123 更新时间:2023-12-03 08:02:51 26 4
gpt4 key购买 nike

我有一个 JavaScript 函数,需要从输入字段调用“onkeyup”:

<input id="searchSurname" type="text" name="surname" onkeyup="queryPatients()" />

然而,在 session 的生命周期内(或者只要用户正在使用该页面),该函数需要能够缓存每次事件发生时的一些结果。

为了防止我的缓存变量被全局访问(令人讨厌的讨厌),我将它们封装在一个匿名函数中(我见过很多的模式)

(function(){

var cacheSurname = "";
var cacheGivenNames = "";

function queryPatients() {

var surname = $('#searchSurname').val();
var givenNames = $('#searchGivenNames').val();

// do some more work, cache the variables
cacheSurname = surname;
cacheGivenNames = givenNames;
}
}).call(this);

但是,由于如此封闭,我的输入字段无法调用该方法。

有合适的解决办法吗?或者我到底必须求助于全局变量吗?

最佳答案

由于您使用的是 jQuery,因此您可以绑定(bind)到该“私有(private)”范围内的 key up 事件。

(function(){

var cacheSurname = "";
var cacheGivenNames = "";

function queryPatients() {

var surname = $('#searchSurname').val();
var givenNames = $('#searchGivenNames').val();

// do some more work, cache the variables
cacheSurname = surname;
cacheGivenNames = givenNames;
}
$('#searchSurname').on('keyup', queryPatients);
}).call(this);

关于javascript - 如何从 html 可访问标记使用或创建非全局 JavaScript 变量缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34514996/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com