How about:
// check for a sibling to this
var sibling = $(this).next('tr');
// if that sibling has the right class, use it
if (sibling.is('.description')){
sibling.load(...).toggle();
}else{
// create the new row and fill it (don't toggle--that would only hide it
$("<tr><td colspan='4'
class='description'></td></tr>").insertAfter(this).load(...);
}
bdee wrote:
>
> yea i dont want to create a new row every time it is clicked. i guss what
> i want to do is to create a details row when the first row is clicked -
> but only if the details row hasnt already been created. if its already
> been created then i want to remove it.
>
> the reason i dotn want to add the empty rown when the table loads and then
> hide it is that it adds to the initial load time of th page. and all the
> empty rows aren't hidden until the page is completely loaded so it looks
> messy until the hide function kicks in to hide the detail rows.
>
> i m really not sure how to proceed with this.
>
>
> Danny Wachsstock wrote:
>>
>> Try creating the element then using chaining to manipulate it:
>>
>> $("<tr><td colspan='4'
>> class='description'></td></tr>").insertAfter(this).load(...).toggle();
>>
>> But are you sure this is what you want? You'll end up creating a new row
>> each time it's clicked, not toggling
>> the old row. Why not create the (empty) description line when the table
>> is created, then hiding it:
>>
>> $('.description').hide();
>>
>> Then next() will do what you want:
>>
>> $(this).next('.description').load(...).toggle();
>>
>> Danny
>>
>>
>> bdee wrote:
>>>
>>>
>>> and up above in the head of my document i have the following:
>>> //show/hide description row on click
>>> $("tr.listing").click(function(){
>>> var myID = $(this).attr("id");
>>> $(this).after("<tr><td colspan='4'
>>> class='description'></td></tr>");
>>>
>>> $(this).next(".description").load("movieDetailsAjax.asp?movie="+myID);
>>> $(this).next(".description").toggle();
>>> });
>>>
>>> so the idea is that whenever you click a row with a class of "listing"
>>> the following will happen:
>>> set a variable congaing the movie id number
>>> after the current row, insert a row with one cell spanning all 4 columns
>>> then starting with the current row, find the next row with a class of
>>> "description" (the row we just created) and load the content from the
>>> ajax file (the html for the movie description and the thumbnail image)
>>> then starting with the current row, find the next row with a class of
>>> "description" (the row we just created) and toggle it. that way when
>>> you click on the row again, it will close this cell.
>>>
>>>
>>
>>
>
>
--
View this message in context:
http://www.nabble.com/onclick---toggle-the-creation-of-a-TR--tf3230589.html#a8996084
Sent from the JQuery mailing list archive at Nabble.com.
_______________________________________________
jQuery mailing list
[email protected]
http://jquery.com/discuss/