访问不同功能的变量

时间:2017-02-16 12:21:31

标签: javascript function

我有这个函数来确定被点击元素的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 个答案:

答案 0 :(得分: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或更高版本。

答案 1 :(得分:1)

您可以使用两个函数之外的变量,如下所示:

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

答案 2 :(得分: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