DaniWeb IT Discussion Community

DaniWeb IT Discussion Community (http://www.daniweb.com/forums/)
-   JavaScript / DHTML / AJAX (http://www.daniweb.com/forums/forum117.html)
-   -   add onclick event programmatically (http://www.daniweb.com/forums/thread23341.html)

zaki May 10th, 2005 12:15 pm
add onclick event programmatically
 
I have a code that I call from Button_click event.
The code adds a new row to the table and attempts
to add onclick element to every td element in the new row.
Somehow, onclick does not work.
Any help is appreciated.
Here is the code:
function insRow()
{
var x = document.getElementById('Table1').insertRow(1);
for(i=0;i<4;i++)
{
var td = document.createElement('td');
td.innerHTML = 'NewItem';
td.setAttribute('onclick', 'alert("blabla")');
x.appendChild(td);
}
}

alpha_foobar May 12th, 2005 12:13 am
Re: add onclick event programmatically
 
hey,
your code works in firefox. so i'd say it pretty close to working in IE. the only change i had to make was in regards to the table row index.. but i presume you already have a row in your table.

zaki May 12th, 2005 8:58 am
Re: add onclick event programmatically
 
Quote:

Originally Posted by alpha_foobar
hey,
your code works in firefox. so i'd say it pretty close to working in IE. the only change i had to make was in regards to the table row index.. but i presume you already have a row in your table.


The first line of my code adds a new row to the table.
I don't know what is wrong with the code, it just doesn't work...

alpha_foobar May 12th, 2005 6:47 pm
Re: add onclick event programmatically
 
i changed insertRow(1); to insertRow(0); and it added the row in firefox. (1 is the second index of a table row).

when i added it, it worked in firefox on linux... so your not far off.

zaki May 13th, 2005 8:30 am
Re: add onclick event programmatically
 
Did you check if the cells in the new row have onclick event associated with them, that what my problem is, not that the row didn't appear. Thanks for your help, anyway.

alpha_foobar May 14th, 2005 11:27 am
Re: add onclick event programmatically
 
yeah, thats what i'm saying.. it worked in mozilla.. you can get the windows jscript debugger.. i find it a hunk of $h!t so i use firefox and the venkman debugger...

but if you place the javascript keyword debugger in your code, and use the ms debugger it works ok.

and everything works in moz. :)

jchase May 26th, 2005 12:24 pm
Re: add onclick event programmatically
 
try:
td.attachEvent('onclick', 'alert("blabla")');

alpha_foobar May 26th, 2005 6:05 pm
Re: add onclick event programmatically
 
the function attachEvent is IE specific, so if this code still doesn't work, this is a possible solution for IE browsers. And could be used as follows:

if( td.attachEvent ){
  td.attachEvent('onclick', 'alert("blabla")');
} else {
  td.setAttribute('onclick', 'alert("blabla")');
}

jchase May 26th, 2005 6:26 pm
Re: add onclick event programmatically
 
actually, i think you hand in a handle to the function (not a string) and I don't think you can hand in parameters into the function. Thus, check this out to help understand how you can still pass in parameters to an onclick.

function myOnclick() {
sendingObj = event.srcElement;
alert (sendingObj.myProperty);
}

...
img.myProperty = "blahblah";
img.attachEvent("onclick", myOnclick); //notice, no brackets... no parametes, no quotes

talen Jan 11th, 2006 6:42 pm
Re: add onclick event programmatically
 
here is what works for me both on mozilla and ie


object.onchange = function() {nameOfYourFunction(parameter1, parameter2, etc)} ;


All times are GMT -4. The time now is 5:06 am.

Forum system based on vBulletin Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
©2003 - 2008 DaniWeb® LLC