Toggle TR στον IE?

Κώδικας, πληροφορίες, ερωτήσεις και απαντήσεις σχετικές με την JavaScript.

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
Άβαταρ μέλους
GRaecuS
Δημοσιεύσεις: 113
Εγγραφή: 02 Απρ 2003 10:21
Τοποθεσία: Thessaloniki
Επικοινωνία:

Toggle TR στον IE?

Δημοσίευση από GRaecuS » 24 Μαρ 2008 14:49

Θέλω να κάνω toggle ένα table row
Ο κώδικας που έχω γράψει ως τώρα είναι ο εξής:

Κώδικας: Επιλογή όλων

	<script language="javascript">
		function toggleElement &#40;elementId&#41; &#123;
			var element;
			if &#40;document.all&#41;
				element = document.all&#91;elementId&#93;;
			else if &#40;document.getElementById&#41;
				element = document.getElementById&#40;elementId&#41;;

			if &#40;element && element.style&#41; &#123;
				if &#40; element.style.display == "none" &#41;
					element.style.display = "";
				else
					element.style.display = "none";
			&#125;

			&#125;
	&#125;
	</script>
<table>
	<tr onClick="toggleElement&#40;'row'&#41;">
		<td>Toggle Row</td>
	</tr>
	<tr id="row" style="display&#58;none">
		<td>Row to be toggled</td>
	</tr>
</table>
το οποίο όμως ενώ δουλεύει στον Firefox, δεν δουλεύει στον IE.

Υπάρχει κάποια λύση?

Hik
Δημοσιεύσεις: 162
Εγγραφή: 23 Σεπ 2005 10:34

Toggle TR στον IE?

Δημοσίευση από Hik » 24 Μαρ 2008 18:29

Ο IE αν θυμάμαι καλά θέλει οπωσδήποτε <thead></thead><tbody></tbody> στα tables.

Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

Toggle TR στον IE?

Δημοσίευση από skeftomilos » 24 Μαρ 2008 18:58

Αν την κάνεις έτσι λογικά θα δουλέψει:

Κώδικας: Επιλογή όλων

function toggleElement&#40;elementId&#41; &#123;
  var element;
  if &#40;document.all&#41; &#123;
    element = document.all&#91;elementId&#93;;
  &#125; else if &#40;document.getElementById&#41; &#123;
    element = document.getElementById&#40;elementId&#41;;
  &#125;
  if &#40;element && element.style&#41; &#123;
    if &#40; element.style.display == "none" &#41; &#123;
      element.style.display = "";
    &#125; else &#123;
      element.style.display = "none";
    &#125;
  &#125;
&#125;
...εκτός αν υπάρχουν περισσότερα από ένα elements με id="row" στη σελίδα.

Άβαταρ μέλους
GRaecuS
Δημοσιεύσεις: 113
Εγγραφή: 02 Απρ 2003 10:21
Τοποθεσία: Thessaloniki
Επικοινωνία:

Toggle TR στον IE?

Δημοσίευση από GRaecuS » 26 Μαρ 2008 09:30

δυστυχώς καμία από τις 2 λύσεις δεν δούλεψαν :/

alexsoft

Toggle TR στον IE?

Δημοσίευση από alexsoft » 26 Μαρ 2008 10:04

GRaecuS έγραψε:δυστυχώς καμία από τις 2 λύσεις δεν δούλεψαν :/

Κώδικας: Επιλογή όλων

<HTML>
<style type="text/css">
<!--
..block &#123;
display&#58; block;
&#125;
-->
</style>

<script language="JavaScript">

function toggle&#40;&#41;&#123;
var theTable = &#40;document.getElementById&#40;'myTABLE'&#41;&#41;;
var theTB = theTable.tBodies.item&#40;0&#41;;
var theTR = document.styleSheets&#91;0&#93;.rules&#91;0&#93;;
if &#40;&#40;theTR.style.display==""&#41;||&#40;theTR.style.display=="block"&#41;&#41;
theTR.style.display="none";
else
theTR.style.display="block";
&#125;
</script>
<BODY>

<table id="myTABLE" border="1" width="100" align="center" cellpadding="0" cellspacing="0">

<tr id="TR1" class="block1" onClick="javascript&#58;toggle&#40;&#41;;">
<td width="50" id="TD11">1.1</td>
<td width="50" id="TD12">1.2</td>
</tr>

<div id="text">
<tr id="TR2" class="block">
<td width="50" id="TD21">2.1</td>
<td width="50" id="TD22">2.2</td>
</tr>
<tr id="TR3" class="block">
<td width="50" id="TD31">3.1</td>
<td width="50" id="TD32">3.2</td>
</tr>
</div>

</table>

</BODY>
</HTML>


Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

Toggle TR στον IE?

Δημοσίευση από skeftomilos » 26 Μαρ 2008 15:32

Τζιζ! Το display:block είναι ακατάλληλο για table rows. Υπάρχει το display:table-row αλλά δεν είναι συμβατό με τον IE6. Η μέθοδος του αρχικού script είναι ασφαλέστερη (προσθήκη-αφαίρεση του display:none).

Απάντηση

Επιστροφή στο “JavaScript και Frameworks”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες