2017-02-16 80 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