簡體   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