理解jQuery(基本问题)

rob*_*obs 0 ajax jquery jscrollpane

我有一个非常基本的jquery问题.我试图将jscrollpane添加到我的网站,并在ajax调用后进行初始化.但是,当我运行该功能时,我一直在控制台中收到"testFunction未定义"的消息.代码非常基本:

$(document).ready(function() {
  var api = $('.scroll-pane').jScrollPane({
      showArrows:true,
      maintainPosition: false
    }).data('jsp');

  function testFunction() {
      api.getContentPane().load('ajax_content.html', function() {
      api.reinitialise();
   });
 }          
});
Run Code Online (Sandbox Code Playgroud)

为什么我一直收到消息?如果我从测试功能中取出测试功能,我会提前感谢错误"api not defined"

Zac*_*ith 5

这与api您定义的变量的范围有关.你需要在api变量之外定义变量$(document).ready(function() { ....试试这个:

var api;
$(document).ready(function() {
  api = $('.scroll-pane').jScrollPane({
      showArrows:true,
      maintainPosition: false
  }).data('jsp');
});

function testFunction() {
    api.getContentPane().load('ajax_content.html', function() {
        api.reinitialise();
    });
}
Run Code Online (Sandbox Code Playgroud)

希望这会有所帮助.