2017-02-04 14 views
0

У меня есть два рассчитанных значения в текстовой области в точечном изображении. Я хотел бы использовать jQuery для изменения цвета фона текстовой области на основе того, если одно значение выше другого. У меня он настроен, но он не работает. Кажется, что он даже не выполняет. Вот HTML.Использование jQuery для изменения цвета фона текстовой области Spotfire

<body id = wrapper> 
<SPAN id = thisyear><SpotfireControl id="2f97a6afc3e64512977dd042a7e32351"  /></SPAN> 

<SPAN id = lastyear ><SpotfireControl id="f98415c74eb34cedbab057f763788bc6" /></SPAN> 
</body> 

Верхние Рассчитанное значение имеет (в ид thisyear) значение 77750, а нижнее расчетное значение имеют (в ид Lastyear) 44086

Идея заключается в том, что, когда фильтры изменить значение я хочу фон цвет для изменения. Вот JQuery, который в настоящее время не работает:

$("#thisyear").change(function() { 
    var thisyearval = ParseInt($("#thisyear").val()); 
    var lastyearval = ParseInt($("#lastyear").val()); 
    if (thisyearval > lastyearval){ 
     $("#wrapper").css("background-color", "#009900") 
     } else{$("#wrapper").css("background-color", "#FF0000")} 
}); 

Я новичок в JQuery, так что любая помощь очень ценится!

+2

Я не знаком с Spotfire, но методы '.change()' и '.val()', которые вы используете, обычно связаны с элементами 'input'. Я бы не предполагал, что они прикрепляли их к '' тегам. Если Spotfire генерирует одно поле ввода, попробуйте вместо этого настроить таргетинг, например '$ ('# thisyear input')'. –

ответ

1

Я закончил тем, что понял это. Вот HTML:

<body > 
<div id = wrapper> 
<div id = thisyear><SpotfireControl id="d644de4c97c440fbb78c561f190e5a47" /> </div> 

<div id = lastyear ><SpotfireControl id="f98415c74eb34cedbab057f763788bc6" /></div> 
</div> 
</body> 

И JQuery, который получает это сделано:

setInterval(function() { 
    var thisyearval = parseInt($("#thisyear").text(),10) 
    var lastyearval = parseInt($("#lastyear").text(),10) 


    if (thisyearval > lastyearval){ 
     $("#wrapper").css("background-color", "#009900") 
    } else{$("#wrapper").css("background-color", "#FF0000")} 
}, 500); 

Оказывается, что Spotfire оленьей кожи поддерживает функцию изменения в JQuery, так что я использовал setInterval(), по существу, называют снова и снова.

Надеюсь, это поможет кому-то еще.

+2

будьте осторожны с 'setInterval()', поскольку он не поддерживается в Spotfire. 'setInterval()' может выполнять несколько раз, приводя к условиям гонки и нечетному поведению в вашем анализе. Я еще не пробовал этого, но вы можете использовать 'clearInterval()' для очистки таймеров при навигации по страницам. для подсказок, см. http://www.w3schools.com/jsref/met_win_setinterval.asp – niko

+0

спасибо за подсказку, я рассмотрю его. –

 Смежные вопросы

  • Нет связанных вопросов^_^