2017-02-16 108 views
0

我有这个函数确定被单击元素的id。我需要将它作为一个变量存储,我可以在另一个函数中使用它。访问不同函数中的变量

$(".loadlist").click(function() { 

    var folderid; 
    folderid =jQuery(this).attr('id') || '' 
     $("#adults").swap({ 
     target: "table1_wrapper", 
     opacity: "0.5", 
     speed: 1000, 
}); 
}); 

第二个功能是

jQuery(document).on("click", "#trigger_adults", function (event) { 
folderName = "/sites/bi/adultslibrary/"; 
fullpath = folderName + folderid; 


    $().SPServices({ 
     webUrl: "http://onespace.nottscc.gov.uk/sites/bihub", 
     operation: "GetListItems", 
     async: false, 
     listName: "adultslibrary", 
     CAMLRowLimit: 100, 
     CAMLViewFields: "<ViewFields> 
    <FieldRef Name='LinkFilename' /> 
    <FieldRef Name='EncodedAbsUrl'/> 
    <FieldRef Name='Year'/> 
    <FieldRef Name='Snapshot'/></ViewFields> " , 
    CAMLQueryOptions: "<QueryOptions><Folder>"+fullpath+ "</Folder></QueryOptions>", 
// everything else 

我需要能够访问该文件夹id变量在第二个功能,所以我可以用它来连接的URL路径。

回答

3

除了定义的变量gloabally,在其他的答案中提到,我相信问题在于你没有在Javascript中包装一个document.onready函数。

不管怎么说,以下为我工作:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js"></script> 
 

 

 
<div class="loadlist" id="1"> 
 
    LoadList 
 
</div> 
 

 
<br><br> 
 

 
<div id="trigger_adults"> 
 
    #trigger_adults 
 
</div> 
 

 
<script> 
 
    $(function() { 
 

 
    var folderid; 
 
    var folderName; 
 
    var fullpath; 
 

 
    $(".loadlist").click(function() { 
 

 
     folderid = jQuery(this).attr('id') || ''; 
 

 
    }); 
 

 
    jQuery(document).on("click", "#trigger_adults", function(event) { 
 

 
     folderName = "/sites/bi/adultslibrary/"; 
 
     fullpath = folderName + folderid; 
 

 
     alert(fullpath); 
 

 
    }); 
 

 
    }); 
 
</script>

如果一切都失败了,请确保您的jQuery的版本是V1.7以上版本。

+0

破解了它!非常感谢您的帮助。如果我能给你买一品脱,我会:) – RScott

1

你可以同时使用这两种功能的变量外是这样的:

var mySpecialId; 
$(".loadlist").click(function() { 
    mySpecialId = xxx; 
    ... 
}); 
$().SPServices({ 
    do something with mySpecialId 
    ... 
}); 
1

您可以定义函数的范围外的变量被点击.loadlist时调用。

var folderid; 
$(".loadlist").click(function() { 


    folderid =jQuery(this).attr('id') || '' 
    $("#adults").swap({ 
    target: "table1_wrapper", 
    opacity: "0.5", 
    speed: 1000, 
    }); 
}); 

然后你的第二个功能:

jQuery(document).on("click", "#trigger_adults", function (event) { 
    folderName = "/sites/bi/adultslibrary/"; 
    fullpath = folderName + folderid; 
    //... 

你也可以看到这个动作在这里:JSFiddle

+0

嗨,感谢您的回复 我试过这个,但folderid好像保存了未定义的值。我已经对变量fullpath做了一个警告,并且它结束了“/ sites/bi/adultslibrary/undefined” – RScott

+0

然后folderid没有在你的两个函数之外的范围内正确设置,我想 – Galago