2013-06-24 2 views
0

Ниже приведен код, который я использую для расширения и свертывания моего div. Теперь я хочу внести небольшие изменения в код. Когда я разворачиваю div, «[-]» с содержимым div, а когда я ругаю, «[+]» с содержимым div должен наступить.Развернуть и свернуть с помощью javascript с помощью [+] и [-]

<style type="text/css"> 
.gap 
{ 

border:1px solid black 

} 
</style> 

<script type="text/javascript"> 

    function toggle_visibility(id) { 
     var e =document.getElementById(id); 

     if(e.style.display == 'none') 
     { 
      e.style.display = 'block'; 
      col.innerHTML=valu; 
     } 
     else 
     { 
      e.style.display = 'none'; 

     } 
    } 

    function edit(id,item) 
    { 
     var e = document.getElementById(id); 
     var f = document.getElementById(item); 

    document.getElementById('id4').innerHTML=e.innerHTML;  
     e.innerHTML=f.innerHTML; 
     window.location=window.location; 

    } 
    function cancel(id,item) 
    { 

     document.getElementById(id).innerHTML=document.getElementById(item).innerHTML; 
    } 

</script> 

<div class="gap" ><a href="#" onclick="toggle_visibility('id1');" id="x">[+]<div id="click" style="float:right;">Click here</div></a></div> 

<div id="id1" style="display:none;">This is foo</div> 


<a href="#" onclick="toggle_visibility('id2');" ><div class="gap">click here1</div></a> 

<div id="id2" style="display:none;">click here1 
<div> <a href="#" onclick="edit('id2','id3');">Edit</a></div> 
</div> 




<div id="id3" style="display:none;">Edit 
<div> <a href="#" onclick="cancel('id2','id4')">cancel</a></div> 
</div> 


<div id="id4" style="display:none;"></div> 

Я жду, когда ваша помощь.

Заранее спасибо

+0

Сделайте скрипку .. !!! –

+0

Я не понимаю вопроса. Вы говорите, что когда вы пытаетесь внести эти изменения, вы получаете какую-то ошибку? Если да - какова ошибка? Или вы говорите, что не пытались внести эти изменения, и надеетесь, что кто-то здесь любезно сделает их для вас? Или . , , ? – ruakh

+0

Пожалуйста, разместите свой рабочий код, который вы упомянули, в своем вопросе, чтобы люди могли посмотреть на него, и сказать вам, как добавить знаки [+] и [-]. – Gimmy

ответ

1

это вы хотите?

function toggle_visibility(id) { 
    var e =document.getElementById(id); 
    var label = document.getElementById("x"); 

    if(e.style.display == 'none') 
    { 
     label.innerHTML = label.innerHTML.replace("[+]","[-]"); 
     e.style.display = 'block'; 
     col.innerHTML=valu; 
    } 
    else 
    { 
     label.innerHTML = label.innerHTML.replace("[-]","[+]"); 
     e.style.display = 'none'; 

    } 
} 
+0

@ leonhart..Это будет работать только для одного div. Я использую несколько divs с разными именами. – bhai

+0

@bhai ok, проверьте обновление. – leonhart

+0

@leonhart ... Мне также нужно отобразить содержимое. Например [+] нажмите здесь ... [+] нажмите здесь1 и т. Д. Я использую несколько div. – bhai

0

использовать шоу и скрыть функции JavaScript, чтобы показать и скрыть дивы:

<div id="showHide" class="open" style="display: block;" onclick="showHide();"> 
    <!-- Your Contents --> 
</div> 

Javascript:

function showHide(currentElem) { 
    if (currentElem.ClassName.indexOf('open') > -1) { 
     // This means its open, now close it 
     currentElem.className = 'closed'; 
     currentElem.style.display = 'none'; 
    } else { 
     currentElem.className = 'open'; 
     currentElem.style.display = 'block'; 
    } 
} 
+0

@ ruakh .. Вы правы .. Я пробовал, но я еще не успел. Позвольте мне знать код для этого. – bhai

0
function toggle_visibility(id) { 
    var e = document.getElementById(id); 

    if (e.style.display == 'none') { 
     document.getElementById('x').innerText = '[-]'; 
     e.style.display = 'block'; 
     //col.innerHTML = valu; 
    } 
    else { 
     e.style.display = 'none'; 
     document.getElementById('x').innerText = '[+]'; 
    } 
} 

При нажатии кнопки [ +] на div этот код показывает div и изменяет [+] на [-] и наоборот. если вы хотите изменить [+] на что-то еще? например «[+] нажмите здесь», вы можете просто изменить соответствующую строку в коде. Я не понимаю, что вы подразумеваете под «вы хотите изменить контент тоже». Что именно вы хотите изменить?

+0

'innerText' не работает в Firefox. Кроме того, 'textContent' не работает в IE. –

+0

Я угадаю, что op может заменить innerText на innerHTML, не жертвуя функциональностью здесь – codetantrik

+0

@ codetantrik..This One Я пробовал и буду работать. Но мне нужно также отображать содержимое ... например [+] нажмите здесь ... [ +] щелкните здесь1 и т. д. Я использую несколько divs. – bhai