如何将全局变量的更改应用于函数内具有相同名称的其他变量?

时间:2016-12-12 05:27:20

标签: javascript jquery

我有一个名为“id”的全局变量。每当我选择另一个输入时,变量会改变。但不知何故,具有“id”的其他函数不会反映使用live更改的当前值。

// Start Ready
$j(document).ready(function() {  

var id;

$j("input").live('click', function(haha){
    id = document.activeElement.id;
    console.log(id);
});

// Live Search
// On Search Submit and Get Results
function search() {
    var query_value = $('input#' + id).val();
    $j('b#search-string').text(query_value);
    if(query_value !== ''){
        $j.ajax({
            type: "POST",
            url: "clientsearch.php",
            data: { query: query_value },
            cache: false,
            success: function(html){
                $("ul#client-result").html(html);
            }
        });
    }return false;    
}

$j("input#" + id).live("keyup", function(e) {
    // Set Timeout
    clearTimeout($.data(this, 'timer'));

    // Set Search String
    var search_string = $(this).val();

    // Do Search
    if (search_string == '') {
        $j("ul#client-result").fadeOut();
    }else{
        $j("ul#client-result").fadeIn();
        $j(this).data('timer', setTimeout(search, 100));
    };
});

});

1 个答案:

答案 0 :(得分:1)

整个local的{​​{1}}变量屏蔽global变量。

要访问function global,您可以使用 id

希望这会对你有所帮助。