2015-10-09 5 views
0

Как я могу выполнять функцию каждый раз, когда я ее вызываю, не перезагружая страницу и получая от нее разные значения?Выполнять функцию каждый раз, когда условие истинно без перезагрузки страницы

код 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'); } 
} 
+0

Я действительно не понимаю, в чем проблема? – Anonymous0day

+0

введите код и пояснения; мой предварительный анализ говорит, что 'div = '# left-info4'' всегда истинно; вы можете попытаться сделать так: 'div == 'left-info4'' – illusionist

+0

см. свою скрипку https://jsfiddle.net/1yscy5ts/15/ и мой ответ! – Anonymous0day

ответ

0

Это может быть то, что вы хотите!

$("#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); 
    } 
} 
+0

большое спасибо за этот ответ! –

0

У вас есть задания происходит в вашей функции вместо сравнения, так что вы никогда не получите результаты, которые вы ожидали. Попробуйте следующее:

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'); } 
}