Javascript 从不同函数访问变量
我有两个变量Javascript 从不同函数访问变量,javascript,jquery,Javascript,Jquery,我有两个变量let bonus和let itemlevel2,我想在函数getResponse中使用它们。 itemlevel2变量是滑块的当前选定值 目前,我只能在getResponse函数中使用itemlevel2变量,但无法访问bonus变量 如何在getResponse函数中正确使用这两个变量 jQuery(function ($) { $(function () { $("#slider-vertical").slider({
let bonus
和let itemlevel2
,我想在函数getResponse
中使用它们。
itemlevel2
变量是滑块的当前选定值
目前,我只能在getResponse函数中使用itemlevel2
变量,但无法访问bonus
变量
如何在getResponse函数中正确使用这两个变量
jQuery(function ($) {
$(function () {
$("#slider-vertical").slider({
orientation: "horizontal",
range: "min",
min: 0,
slide: function (event, ui) {
$("#amount").val(ui.value);
},
});
getResponse(0);
$('ul#menu li').click(function () {
let bonus = $(this).attr("value");
getResponse(bonus);
});
$('#slider-vertical').on('slide', function (event, ui) {
let itemlevel2 = $("#slider-vertical").slider("value");
getResponse(itemlevel2);
});
});
function getResponse(itemlevel2, bonus) {
$.ajax({
type: "GET",
cache: "true",
url: "itemscript.php",
data: {
"bonus": bonus,
"itemlevel": itemlevel2
},
success: function (data) {
$('.item-content').html('<div class="tooltipitem-site"><div class="ui-tooltip-site">' + data + '</div></div>');
}
});
}
});
jQuery(函数($){
$(函数(){
$(“#滑块垂直”)。滑块({
方向:“水平”,
射程:“分钟”,
分:0,,
幻灯片:功能(事件、用户界面){
美元(“#金额”).val(ui.value);
},
});
getResponse(0);
$('ul#menu li')。单击(函数(){
let bonus=$(this.attr(“value”);
获得响应(奖金);
});
$(“#滑块垂直”)。打开('slide',函数(事件,用户界面){
让itemlevel2=$(#滑块垂直”)。滑块(“值”);
getResponse(itemlevel2);
});
});
函数getResponse(itemlevel2,奖金){
$.ajax({
键入:“获取”,
缓存:“真”,
url:“itemscript.php”,
数据:{
“奖金”:奖金,
“itemlevel”:itemlevel2
},
成功:功能(数据){
$('.item content').html(''+数据+'');
}
});
}
});
实现这一点的一种方法是反转依赖关系,以便getResponse()
函数负责从DOM检索所需的信息
这样可以避免在不同时间设置奖金
和itemlevel2
值的“异步”问题,也不需要任何全局变量。试试这个:
jQuery($=>{
$(“#滑块垂直”)。滑块({
方向:“水平”,
射程:“分钟”,
分:0,,
幻灯片:功能(事件、用户界面){
美元(“#金额”).val(ui.value);
},
});
getResponse(0);
让$li=$('ul#menu li')。在('click',function()上{
//在单击的元素上设置一个类,以便以后能够读取其属性
$li.removeClass('active');
$(this.addClass('active');
getResponse();
});
$(“#滑块垂直”)。on('slide',getResponse);
});
函数getResponse(){
让奖金=$('ul#menu li.active').attr('value');
让itemlevel2=$(#滑块垂直”)。滑块(“值”);
$.ajax({
键入:“获取”,
缓存:“真”,
url:“itemscript.php”,
数据:{
“奖金”:奖金,
“itemlevel”:itemlevel2
},
成功:功能(数据){
$('.item content').html(''+数据+'');
}
});
}
作为旁注,您的代码意味着
li
有一个value
属性,该属性不是有效的HTML。如果您想在DOM中的元素上存储自定义元数据,请使用数据
属性,例如数据值
您的getResponse
函数需要两个参数(itemlevel2
和bonus
),但您总是只传递第一个参数来调用它。