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