![](/img/trans.png)
[英]Using a non-global variable in one function for a separate function (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.