mbeals Posted March 29, 2009 Share Posted March 29, 2009 I have a page that does dynamic database updates/queries via ajax. Part of this allows the user to click an edit icon in a table row, which switches that row into "edit mode". When I switch between modes, I change the layout of buttons (in the form of hyperlinked images) in the last cell. Each "button" consists of a p tag with a href child with an img child. I build each object individually, then use appendChild to nest them. Finally, I use appendChild again to assign the final "Button" to the cell in the table. To simplify this, I created an object that takes button type as an argument. I want to be able to do something like: var cell = getElementById('cell'); var accept = new button('accept'); var cancel = new button('cancel'); cell.appendChild(accept); cell.appendChild(cancel); I appologize for not having full code. My internet connection is currently down and I'm typing this up on by phone. I will post full code a little later if needed. Link to comment https://forums.phpfreaks.com/topic/151660-solved-append-custon-object-as-child/ Share on other sites More sharing options...
corbin Posted March 29, 2009 Share Posted March 29, 2009 So uhhh.... What was your question? Link to comment https://forums.phpfreaks.com/topic/151660-solved-append-custon-object-as-child/#findComment-796462 Share on other sites More sharing options...
mbeals Posted March 29, 2009 Author Share Posted March 29, 2009 Sorry, I figured out a workaround, but I'm not completely happy with it. Basically I want to create an object that extends the p object such that when I append it as a child to another object (table cell), it treats it like a p object. here's some sample code: function button(type,id){ this.id = id; this.type = type; this.p_tag = document.createElement('p'); this.a_tag = document.createElement('a'); this.img_tag = document.createElement('img'); this.img_tag.width = 16; this.img_tag.height = 16; this.img_tag.border = 0; this.p_tag.appendChild(this.a_tag); this.a_tag.appendChild(this.img_tag); this.a_tag.setAttribute('href', '#'); switch(this.type){ case 'accept' : this.a_tag.setAttribute('onClick', 'accept('+this.id+')'); this.img_tag.src = 'images/accept.jpg'; this.img_tag.alt = 'accept'; this.img_tag.title = 'accept'; break; case 'cancel' : this.a_tag.setAttribute('onClick', 'cancel('+this.id+')'); this.img_tag.src = 'images/restart.jpg'; this.img_tag.alt = 'cancel'; this.img_tag.title = 'cancel'; break; case 'delete' : this.a_tag.setAttribute('onClick', 'del('+this.id+')'); this.img_tag.src = 'images/b_drop.png'; this.img_tag.alt = 'delete'; this.img_tag.title = 'delete'; break; case 'edit' : this.a_tag.setAttribute('onClick', 'edit('+this.id+')'); this.img_tag.src = 'images/b_edit.png'; this.img_tag.alt = 'edit'; this.img_tag.title = 'edit'; break; } } with this code I can do this: var cell = document.getElementById('cell'); var accept = new button('accept','button1'); var cancel = new button('cancel','button2'); cell.appendChild(accept.p_tag); cell.appendChild(cancel.p_tag); I would prefer this behavior: var cell = document.getElementById('cell'); var accept = new button('accept','button1'); var cancel = new button('cancel','button2'); cell.appendChild(accept); cell.appendChild(cancel); in which case the base 'button' class would really be an extension of the p class. Does that help? Link to comment https://forums.phpfreaks.com/topic/151660-solved-append-custon-object-as-child/#findComment-796469 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.