每次条件为真时执行一个函数,无需重新加载页面
Execute a function everytime a condition is true without reloading the page
我怎么能执行一个函数,每次我调用它而不重新加载页面,并根据id从它得到不同的值?
Html代码:<a href="#" id="next"> click here </a>
jQuery代码:
$("#next").click(function() {
var div1vis = $(".left-div .info-left-div").filter(':visible'),
div2vis = $(".right-div .info-right-div").filter(':visible');
var id = jQuery(this).attr("id");
if (div1vis.next().length > 0 && div2vis.next().length > 0) {
var nextid = div1vis.next().attr("id");
changebackground(nextid);
div1vis.next().show().prev().hide();
div2vis.next().show().prev().hide();
}
});
function changebackground(divid) {
if (divid = '#left-info1') { $("body").css('background-color', '#ebb614'); }
if (divid = '#left-info2') { $("body").css('background-color', '#acb7a8'); }
if (divid = '#left-info3') { $("body").css('background-color', '#4f795b'); }
if (divid = '#left-info4') { $("body").css('background-color', '#7f7a6e'); }
if (divid = '#left-info5') { $("body").css('background-color', '#4a87a2'); }
if (divid = '#left-info6') { $("body").css('background-color', '#121929');}
if (divid = '#left-info7') { $("body").css('background-color', '#1b5367'); }
if (divid = '#left-info8') { $("body").css('background-color', '#13192e'); }
}
这可能就是你想要的!
$("#next").click(function() {
var div1vis = $(".left-div .info-left-div").filter(':visible'),
div2vis = $(".right-div .info-right-div").filter(':visible');
var id = jQuery(this).attr("id");
if ( div1vis.next('.left-div .info-left-div').length > 0
&& div2vis.next('.right-div .info-right-div').length > 0 ) {
var nextid = div1vis.next('.left-div .info-left-div').attr("id");
changebackground(nextid);
div1vis.next().show().prev().hide();
div2vis.next().show().prev().hide();
}
});
function changebackground(divid) {
var colors = {
'left-info1': '#ebb614',
'left-info2': '#acb7a8',
'left-info3': '#4f795b',
'left-info4': '#7f7a6e',
'left-info5': '#4a87a2',
'left-info6': '#121929',
'left-info7': '#1b5367',
'left-info8': '#13192e',
};
var curColor = colors[divid];
if (curColor) {
//$('#' + divid).show();
$("body").css('background-color', curColor);
}
}
你有分配发生在你的函数而不是比较,所以你永远不会得到你所期望的结果。试试这个:
function changebackground(divid) {
if (divid == '#left-info1') { $("body").css('background-color', '#ebb614'); }
if (divid == '#left-info2') { $("body").css('background-color', '#acb7a8'); }
if (divid == '#left-info3') { $("body").css('background-color', '#4f795b'); }
if (divid == '#left-info4') { $("body").css('background-color', '#7f7a6e'); }
if (divid == '#left-info5') { $("body").css('background-color', '#4a87a2'); }
if (divid == '#left-info6') { $("body").css('background-color', '#121929');}
if (divid == '#left-info7') { $("body").css('background-color', '#1b5367'); }
if (divid == '#left-info8') { $("body").css('background-color', '#13192e'); }
}
相关文章:
- 创建新数据和加载现有数据需要单独的视图吗
- 钛 - HTTPClient:打开新的控制器加载
- 保持 JavaScript 在浏览器控制台中运行,即使在新的页面加载之后也是如此
- 路由到新页面时加载不起作用
- 如何在新窗口完成加载后执行某些内容
- 使用新标题重新加载 html 页面
- Primefaces在打开新页面时加载数据消息
- Wordpress音频播放器和平滑状态.在新页面重新加载播放器时调用什么回调函数
- 用新数据重新加载renderer3d
- 文本不被渲染后,新的页面加载- JQuery移动
- 需要在新标签中加载pdf/doc文件,而不是下载,只是想在浏览器中阅读
- 用新参数重新加载页面
- Js和CSS不检测新页面何时加载
- 在新页面上加载一个flash视频,它在上一页上的位置
- 在新窗口中加载代码编写器视图
- 在控制台中使用新脚本重新加载页面
- 如何在加载新页面后加载AJAX数据
- 如何使用jQuery在新窗口中加载页面,然后关闭它们
- Jquery没有看到新的HTML加载到对话框中
- 无法用新值重新加载JGrid