繁体   English   中英

如何通过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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM