2

我尝试在点击时创建一个变量,并在另一个点击操作中使用它。但是,当第二次 onclick 尝试使用它时,该变量似乎不存在。

$( "#search" ).click(function() {
    var myVariable = $(document).scrollTop();
});

$( "#gachette" ).click(function() {
    $('html, body').animate({scrollTop:myVariable}, 10);
});

你知道为什么它不起作用吗?

4

3 回答 3

3

使您的变量全局化。

$( "#search" ).click(function() {
   myVariable = $(document).scrollTop(); //global variable remove var from starting
});

var使您的变量成为范围的本地变量。

或者在外面声明你的变量

var myVariable;
$( "#search" ).click(function() {
   myVariable = $(document).scrollTop();
});

阅读JavaScript 中变量的范围是什么?变量范围(JavaScript)

于 2013-11-14T16:27:59.063 回答
1

一切都与范围有关

var myVariable; // DEFINE OUTSIDE!

$( "#search" ).click(function() {
    myVariable = $(document).scrollTop(); // DON'T USE var HERE
});

$( "#gachette" ).click(function() {
    $('html, body').animate({scrollTop:myVariable}, 10);
});
于 2013-11-14T16:29:16.157 回答
0

并且没有全局变量:

$("#search").on('click', function() {
    $("#gachette").data('scrollTop', $(window).scrollTop());
});

$("#gachette").on('click', function() {
    $('html, body').animate({scrollTop: $(this).data('scrollTop')}, 10);
});
于 2013-11-14T16:35:49.533 回答