在相同页面函数之间传递Dynamic jQuery变量

时间:2012-03-07 19:43:00

标签: jquery

我已经阅读了几个关于在多个函数中使用变量的问题,将其设置为全局(在函数之外定义它)...但是,我有一个函数可以在click上生成动态值(得到一个href值为一个链接) -

我需要将结果变量传递给另一个函数。

基本上,我抓取一个点击链接的href值,然后想要在选择确认框时将其传递给Ajax。

似乎全局声明变量不会起作用,因为它的定义仅在触发onclick事件时才会出现。

有什么想法吗?

3 个答案:

答案 0 :(得分:4)

您可以将变量创建为值为null的全局变量,然后在第一个函数中设置它。在第二个函数中读取变量后,将值设置回null

示例:

var someGlobal = null;

function f1( ) {
    someGlobal = 'someValue';
}

function f2( ) {
    if( someGlobal == null ) {
        // the global isn't set! might want a message of some sort, or just ignore it
        return;
    }
    var myLocal = someGlobal;
    someGlobal = null;

    // do something with myLocal here
}

答案 1 :(得分:4)

实现这一目标的最佳方法是定义变量,因为您已经通过函数(){}之外的任何内容读取了外部源。例如,我通常为全局变量做的是设置一个默认值,或者将它设置为我在JS中编写的任何其他代码之上的空白值。

示例:

var myHREFval;
$('a').click(function(){myHREFval = $(this).attr('href');});

答案 2 :(得分:2)

您可以像往常一样将其作为变量传递:

$('...').click(function() {
       var myURL = $(this).attr('href')
       otherFunction(myURL)
})