如何使用或从html可访问标记创建非全局javascript变量缓存
How to use or create a non-global javascript variable cache from a html accessible tag
我有一个javascript函数,需要从输入字段调用"onkeyup":
<input id="searchSurname" type="text" name="surname" onkeyup="queryPatients()" />
然而,在会话的生命周期内(或者只要用户正在使用该页面),该函数需要能够缓存每次事件发生时的一些结果。
为了防止我的缓存变量是全局可访问的(令人讨厌),我将它们封装在一个匿名函数中(我经常看到这种模式)
(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,因此您可以绑定到该"私有"范围内的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中创建全局唯一ID
- 如何在javascript中创建全局变量(使用webpack)
- 如何为HTML属性/选择器创建全局名称空间或变量
- 如何使用局部变量创建全局变量
- 在 Javascript 中创建全局变量时是否需要指定对象类型
- 如何在范围内创建全局函数
- TypeScript:从模块创建全局变量
- 创建全局主干.js错误视图
- 如何在函数中创建全局变量
- YUI3 - 创建全局变量以避免使用 .use(..);
- 如何在 Redux 中创建全局错误处理程序并在需要时覆盖它
- 创建全局设置超时变量
- 这行是在创建全局变量吗
- 停止Emscripten创建全局“;模块”;
- Javascript:从类内部创建全局作用域函数
- 如何在WSO2ESB中创建全局变量-必须是可更新的
- 如何从 Tumblr 主题选项的输出创建全局变量
- 如何在nodejs中创建全局HashMap
- 是否可以在不创建全局回调函数的情况下异步初始化Google Maps ?