将jquery变量传递给另一个函数

时间:2016-02-27 20:57:48

标签: javascript jquery

不确定为什么这不起作用,并且它作为对象/未定义返回。

我在doc.ready上面有一个变量:

var video_box_original_link = '';

我在ready函数中点击了一个链接,可以获取信息:

$(document).on('click', '.youtube_video', function(video_box_original_link){
    var my_game_name = $('a.game_title_link').attr('name');
    var my_game_platform = $('a.game_platform_link').attr('name');
    video_box_original_link = "/"+my_game_platform+"/"+my_game_name+"/videos";
});

我有一个函数,我正试图传递给它,这也在下面的doc.ready中:

$(document).on('click', '.popblock_box', function(e, video_box_original_link){
    window.history.pushState("vidPage", "vidPopped", ""+ video_box_original_link +"");
}

这应该没事吗?

“e”表示脚本中的其他内容,无需显示。

1 个答案:

答案 0 :(得分:1)

您无法像在function(video_box_original_link)中那样将变量传递给回调,您应该在全局范围内定义它,然后使用它:

var video_box_original_link = '';

$(document).on('click', '.youtube_video', function(){
    var my_game_name = $('a.game_title_link').attr('name');
    var my_game_platform = $('a.game_platform_link').attr('name');

    video_box_original_link = "/"+my_game_platform+"/"+my_game_name+"/videos";
});

$(document).on('click', '.popblock_box', function(e){
    window.history.pushState("vidPage", "vidPopped", ""+ video_box_original_link +"");
}

希望这有帮助。