2014-01-20 3 views
0

У меня есть метка, которая показывает динамические значения на основе действий пользователя. Например, 1 или 2. Я хотел бы показать элемент div с id = "charts_div", если значение метки равно «1» Я хотел бы скрыть элемент div, если значение «2» Этот пример упрощен насколько это возможно, так что я мог бы получить основную идею, где я застрялJQUERY HTML DIV hide and show, основанный на значении метки

HTML

<label id="label"></label> 
<div id="chart1_div" style="width:100%; height:200px"></div> 
<div id="chart2_div" style="width:100%; height:200px"></div> 

Jquery

$(document).ready(function() { 
$('#label').bind('change', function (e) { 
if ($('#label').text() == "1") 
{ 
$('#chart1_div').show(); 
$('#chart2_div').hide(); 

} 
else if $('#label').text()=="2") 
{ 
    $('#chart1_div').hide(); 
    $('#chart2_div').show(); 
}   
}).trigger('change'); 
}); 
+0

Вы раунд (кронштейн недостающую на вашем втором if (else if). вместо привязки к событию изменения для метки (которая никогда не срабатывает), почему бы не вызвать функцию, которая проверяет, где метка изменена? – developer82

ответ

3

Вы не можете связать change событие элемента, d У этого не было такого события. Поместите эту логику изменений внутри события, которое фактически выполняет изменение текста label.

+0

Yup. Также посмотрите на этот вопрос и ответ за дополнительной помощью: http://stackoverflow.com/questions/1091661/detect-element-content-changes-with-jquery – degenerate

+0

Я получаю there.thanks для совета о смене Bind, я согласен. – kaulainais

+0

Это я искал $ ('mydiv'). Bind ("DOMSubtreeModified", function() { alert ('changed'); }); – kaulainais

0

Как было сказано, вы не можете привязать событие change к label. Сделайте все, что меняет ваш ярлык, также измените отображаемые div. Предположив, что это кнопка, сделать что-то вроде этого:

HTML

<label id="myLabel">1</label> 
<button id ="myButton">Toggle between 1 and 2</button> 
<div id="chart1_div" style="width:100%; height:200px">a</div> 
<div id="chart2_div" style="width:100%; height:200px">b</div> 

JS

$(document).ready(function() { 
    $("#myButton").click(function(){ 
     if ($('#myLabel').text() == '1') 
     { 
      $("#myLabel").text('2'); 
      $('#chart1_div').show(); 
      $('#chart2_div').hide(); 
     } else if ($('#myLabel').text()=='2') 
     { 
      $("#myLabel").text('1'); 
      $('#chart1_div').hide(); 
      $('#chart2_div').show(); 
     }   
    }); 
}); 

Заканчивать живой пример на этом jsfiddle;)

+0

Я хотел бы создать событие On Label change, но это не сработает. – kaulainais