Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在相同页面函数之间传递动态jQuery变量_Jquery - Fatal编程技术网

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

在相同页面函数之间传递动态jQuery变量,jquery,Jquery,我已经读过几个关于在多个函数中使用一个变量的问题,通过使其全局化(在一个函数之外定义它)。。。但是,我有一个函数,可以在单击时生成一个动态值(获取链接的href值)—— 我需要将结果变量传递到另一个函数中 基本上,我抓取一个点击链接的href值,然后如果选择了一个确认框,我想将其传递给Ajax 全局声明变量似乎不起作用,因为它的定义只有在触发onclick事件时才会出现 有什么想法吗?您可以创建一个值为null的全局变量,然后在第一个函数中设置它。在第二个函数中读取变量后,将值设置回null 例

我已经读过几个关于在多个函数中使用一个变量的问题,通过使其全局化(在一个函数之外定义它)。。。但是,我有一个函数,可以在单击时生成一个动态值(获取链接的href值)——

我需要将结果变量传递到另一个函数中

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

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


有什么想法吗?

您可以创建一个值为
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
}
var myHREFval;
$('a').click(function(){myHREFval = $(this).attr('href');});

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

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

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

例如:

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
}
var myHREFval;
$('a').click(function(){myHREFval = $(this).attr('href');});

如果您只需要将变量传递给函数,但假设您需要存储该变量以供以后使用,在其他函数运行之后,另一个函数可以访问该变量,那么这种方法是有效的。在任何功能之外定义它将允许您在页面打开时存储它。@Diodeus-我的道歉。我可以/应该添加哪些额外数据以提供帮助?谢谢。我喜欢这种方法——我意识到了第二个问题。我正在调用return my_confirm()-这是onclick(内联)中的确认框,并从单击时运行的函数中获取“href”变量。但是,confirm()在onlcick之前运行-这就是为什么它将全局变量访问为NULL(给定您的策略)。。。有没有办法反转这些函数运行的顺序?感谢您的快速响应。在单击
onclick
之前会调用
confirm
?您问题中的描述暗示从
onclick
调用
confirm
。你能编辑你的问题并发布一些代码吗?事实上,我知道了。现在我已经得到了全局变量,我不是从onclick inline调用函数,而是从与delClick-关联的click事件调用函数。你的回答给了我我所需要的。谢谢对不起,我跑了,没问题!很高兴我能帮忙!:)