晚上的男士,我有一个艰难的,我不知道这是否是正确的方式去做这个或没有,但这里...基本上我正在创建一个动态日历,目前我正在努力的月份功能(你单击箭头,它返回)我有一个jquery函数启动其他功能onclick,到目前为止一切正常,日历重新绘制一个月,月份的名称返回一个,但我有一个问题设置返回1年,进一步详细说明...月份名称由ajax查询(php)重新绘制,它完美地工作,从我可以告诉我的javascript也应该工作得很好。基本上每当它回溯一年时,我都会在<div id = "placeholder>
中存储一个数字作为参考点。这听起来很复杂,希望代码更有意义,如果有人能找到更好的方法,请告诉我:
jquery的:
$(document).ready(function() {
$("#changeMonthBack").click(function() {
//ajax query for month title
function(data) {
//responce is here
//set year (n)
var placeholder = parseInt($("#placeholder").attr('class'),10);
if(str == 1 && placeholder == ""){
var d = new Date();
var n = d.getFullYear();
n = n - 1;
$("#placeholder").addClass("1");
}
else if(str == 1 && placeholder != ""){
var d = new Date();
var n = d.getFullYear();
n = n - placeholder;
var temp = placeholder + 1;
$("#placeholder").removeClass(""+placeholder+"");
$("#placeholder").addClass(""+temp+"");
}
else{
var d = new Date();
var n = d.getFullYear();
}
$("#monthYear").html(data +" "+ n);
HTML:
<li title = "Previous Month" id = "changeMonthBack"></li>
<div id = "placeholder"></div><!-- holder for year js -->
<div id = "monthYear">
目前在到达2013年之后,它给出了我的NaN错误。任何和所有的帮助都很可爱。如果有任何其他信息可以帮助我告诉我
答案 0 :(得分:1)
如果您这样做:
$(document).ready(function() {
var placeholder = 0;
$("#changeMonthBack").click(function() {
//....
function(data) {
//responce is here
//set year (n)
if(str == 1 && placeholder === 0) {
var d = new Date();
var n = d.getFullYear();
n = n - 1;
placeholder = 1;
}
else if(str == 1 && placeholder > 0) {
var d = new Date();
var n = d.getFullYear();
n = n - placeholder;
placeholder++;
}
}
//....
});
});
现在可以在placeholder
处理程序中(以及更深层次的嵌套函数中)使用变量click
,因为嵌套函数可以访问外部闭包中定义的变量。
现在您不需要在DOM中存储数据。