从jquery / javascript中的前一个函数获取var

时间:2014-08-19 22:34:06

标签: javascript jquery function

由于我刚接触基本功能的新功能,我现在卡住了。 我有一个函数有几个vars我想在另一个函数中重用。我得到的错误是bigsrc在第二个函数中未定义。显然,我做错了什么,但我无法弄清楚它是什么。

$(".villa div a").click(function(){
        var smallsrc = $(this).parent().parent().find(".blueprint a img").attr("src").replace('.jpg', '_small.jpg');    
        var bigsrc = $(this).find("img").attr("src");
        var bigsrc = bigsrc.replace('.jpg', '_big.jpg');
        var villaNaam = $(this).parent().parent().find("h2").text();
        if (bigsrc.indexOf("blueprint") != -1) {
            var smallsrc = $(this).parent().parent().find(".foto a img").attr("src");
        }
        else {
            var smallsrc = $(this).parent().parent().find(".blueprint a img").attr("src");
        }
        var smallsrc = smallsrc.replace('.jpg', '_small.jpg');


         $("#popup-img").fadeIn();
         $("#popup-bg").fadeIn();
         $("#popup-img #titel").append(villaNaam)
         $("#popup-img #big").attr("src", bigsrc);
         $("#popup-img #small").attr("src", smallsrc);
    })
    $("#small-link").click(function(){
            if (bigsrc.indexOf("blueprint") != -1) {
                var smallsrc = smallsrc.replace('blueprint', 'huis');
                var bigsrc = smallsrc.replace('huis', 'blueprint');
            }
            else {
                var smallsrc = smallsrc.replace('huis', 'blueprint');
                var bigsrc = smallsrc.replace('blueprint', 'huis');
            }
     });

3 个答案:

答案 0 :(得分:0)

尝试全局变量。

var myVariable=2;
function myFunc(){
    console.log(myVariable)
}
myFunc();

答案 1 :(得分:0)

这是Scope

的问题

您正在$(“。villa div a”)中创建变量。点击功能。

为了能够在别处使用它们,在更高级别(在该函数之外)创建变量,然后在函数内部分配它们。

 var bigsrc = $(document).find("img").attr("src");
 var smallsrc = $(document).find(".foto a img").attr("src");
$(".villa div a").click(function(){
        var smallsrc = $(this).parent().parent().find(".blueprint a img").attr("src").replace('.jpg', '_small.jpg');    
        bigsrc = $(this).find("img").attr("src");
        bigsrc = bigsrc.replace('.jpg', '_big.jpg');
        var villaNaam = $(this).parent().parent().find("h2").text();
        if (bigsrc.indexOf("blueprint") != -1) {
            smallsrc = $(this).parent().parent().find(".foto a img").attr("src");
        }
        else {
            smallsrc = $(this).parent().parent().find(".blueprint a img").attr("src");
        }
        smallsrc = smallsrc.replace('.jpg', '_small.jpg');


         $("#popup-img").fadeIn();
         $("#popup-bg").fadeIn();
         $("#popup-img #titel").append(villaNaam)
         $("#popup-img #big").attr("src", bigsrc);
         $("#popup-img #small").attr("src", smallsrc);
    })
    $("#small-link").click(function(){
            if (bigsrc.indexOf("blueprint") != -1) {
                smallsrc = smallsrc.replace('blueprint', 'huis');
                bigsrc = smallsrc.replace('huis', 'blueprint');
            }
            else {
                smallsrc = smallsrc.replace('huis', 'blueprint');
                bigsrc = smallsrc.replace('blueprint', 'huis');
            }
     });

答案 2 :(得分:0)

尝试

$(".villa div a").click(function(){
    // ..
    bigsrc = $(this).find("img").attr("src");
    bigsrc = bigsrc.replace('.jpg', '_big.jpg');
    $("#small-link").data("bigsrc", bigsrc);
    // ..
});

$("#small-link").click(function(){
        if ($(this).data("bigsrc").indexOf("blueprint") != -1) // ..
// ..
});

jsfiddle http://jsfiddle.net/guest271314/x0jnav0t/