js传递问题

我在下面做了一个off与on的判断,但当我想提交按钮时会弹出('评价失败请重试');因为在下面时的num值在ajax时没有,所以才有这个问题,如何让下面的num,获取到?

// num为点亮星星的数量,

$(function () {

var num = 0;

//实现星星效果

var $rating = $('#rating')

lightOn(num);

$rating.on('mouseover', '.rating-item', function () {

lightOn($(this).index() + 1);

}).on('click', '.rating-item', function () {

num = $(this).index() + 1;

}).on('mouseout', function () {

lightOn(num);

return num;

});

//提交文字表单

$('#info-button').on('click', function () {

$.ajax({

type: 'post',

url: "{:U('User/Index/evaluate')}",

data: {

score: num,

textarea: $("textarea[name='from-textarea']").val(),

id: $("input[name='id']").val()

},

dataType: 'json',

success: function (data) {

if (data != 0) {

hideShow('.form-text', '.success');

$('.close-success').on('click', function () {

$('.success').hide();

num = 0;

$("textarea[name='from-textarea']").val('');

act(data);

});

} else if (data == -1) {

alert('您不满足评价条件');

} else {

alert('评价失败请重试');

}


}

})


})

function act(uid, object) {

// var object = arguments[1]?arguments:0;

// if(object != 0){

//     $('#list-ul>li').removeClass('active');

//     $(object).addClass('active');

// }    

// $(object).addClass('active');

$.ajax({

type: 'post',

url: "{:U('User/Index/getevaluate')}",

data: {

id: uid

},

dataType: 'json',

success: function (obj) {

hideShow('.unchanged', '.info');

$('.username').html(obj['data']['name']);

$('.job_number').html(obj['data']['job_number']);

$('.u-pic img').attr('src', obj['data']['thumb']);

$('.motto').html(obj['data']['motto']);

if (obj['res'] == 0) {

$('.info').removeClass('show-con');

lightOn(0);

$("input[name='id']").val(obj['data']['id']);

hideShow('.text-show', '.form-text');

var num=0;

$('#rating').on('mouseover', '.rating-item', function () {

lightOn($(this).index() + 1);

})

$('#rating').on('click', '.rating-item', function () {

num = $(this).index() + 1;

})

$('#rating').on('mouseout', function () {

lightOn(num);

console.log(num)

return num;

});

} else {

$(".info").addClass('show-con');

hideShow('.form-text', '.text-show');

$('.name').html("用户:" + obj['data']['user_name']);

$('.ctime').html("时间:" + obj['data']['create_time']);

$('.cont').html(obj['data']['cont']);

lightOn(obj['data']['score']);

if(obj['data']['score'] >= 1){

$('#rating').off("mouseover");

$('#rating').off("mouseout");

$('#rating').off("click");

}

}

}

})


}


function lightOn(n) {

var $rating = $('#rating'),

$item = $rating.find('.rating-item');

$item.each(function (index) {

if (index < n) {

$(this).addClass('action');

} else {

$(this).removeClass('action');

}

})

}



彬彬有理_0
浏览 1607回答 1
1回答

范克里夫

按你的思路,把num声明为全局变量即可。
打开App,查看更多内容
随时随地看视频慕课网APP