单击事件时Javascript变量未正确更改
我有以下脚本单击事件时Javascript变量未正确更改,javascript,jquery,Javascript,Jquery,我有以下脚本 $(function () { $('#slider').slider({ value: 50, min: 10, max: 100, step: 10, slide: function (event, ui) { $("#slider-value").html(ui.value); $("#hiddenbox").val(ui.value);
$(function () {
$('#slider').slider({
value: 50,
min: 10,
max: 100,
step: 10,
slide: function (event, ui) {
$("#slider-value").html(ui.value);
$("#hiddenbox").val(ui.value);
},
change: function (event, data) {
$("#slider-value").html($('#slider').slider('value'));
var sliderValue = hiddenbox.value;
$("#div1").load(bob, {sliderValue: sliderValue}, function(responseTxt,statusTxt,xhr){
if(statusTxt=="error")
alert("Error: "+xhr.status+": "+xhr.statusText);
});
}
});
$("#show-slider").click(function() {
$('#slide').toggle("slow");
});
});
我正在使用变量bob确定加载哪个文件。这将导致JquerySlider将Div1的内容更改为bob中指定的页面
另一菜单选项上的单击事件应重新分配变量:
$(document).ready(function(){
$("#sport").on("click", function(){
var page = "sport.php";
var sliderValue = hiddenbox.value;
var bob = "sport.php";
$("#div1").load("sport.php", {sliderValue: sliderValue, page: page}, function(responseTxt,statusTxt,xhr){
if(statusTxt=="error")
alert("Error: "+xhr.status+": "+xhr.statusTexe. t);
});
});
});
然而,目前所发生的一切是滑块什么也不做。如果您移动它并进行页面转换,则会发生更改,但除此之外,它没有响应
已声明bob正在使用:
$(document).ready(function(){
var bob;
});
首先声明bob,然后不要使用var再次声明bob:
var bob;
$(document).ready(function(){
$("#sport").on("click", function(){
var page = "sport.php";
var sliderValue = hiddenbox.value;
bob = "sport.php";
$("#div1").load("sport.php", {sliderValue: sliderValue, page: page}, function(responseTxt,statusTxt,xhr){
if(statusTxt=="error")
alert("Error: "+xhr.status+": "+xhr.statusTexe. t);
});
});
$('#slider').slider({
value: 50,
min: 10,
max: 100,
step: 10,
slide: function (event, ui) {
$("#slider-value").html(ui.value);
$("#hiddenbox").val(ui.value);
},
change: function (event, data) {
$("#slider-value").html($('#slider').slider('value'));
var sliderValue = hiddenbox.value;
$("#div1").load(bob, {sliderValue: sliderValue}, function(responseTxt,statusTxt,xhr){
if(statusTxt=="error")
alert("Error: "+xhr.status+": "+xhr.statusText);
});
}
});
$("#show-slider").click(function() {
$('#slide').toggle("slow");
});
});
不过要小心,我重新安排了您的代码,但我没有对其进行测试。您甚至没有测试代码格式吗?在该函数外声明bob,否则它将在函数块后消失。尝试在javascript的第一行声明bob。遗憾的是,这没有什么区别。您的每个函数都会创建一个新的作用域,其中一个函数中声明的变量对其他函数不可见。如果您希望一个变量对所有人都可见,则必须在所有变量之外声明它。不要执行var bob=sport.php,只执行bob=sport.php。否则,您将声明一个局部变量,而它不会访问全局变量。