Everytime you're calling that function, you're adding an addition click event to it. One option is to unbind any existing onclick events and then re-bind it.:
$('a[rel="lesson"]').unbind('click').click(...) On Mar 4, 5:42 am, inertiahz <p.thripple...@googlemail.com> wrote: > Hi there, > > Just getting started with javascript and jquery on a site im > developing, however i cant figure a way around a function executing > repeatedly. > > I have some code to open all links with rel='lesson' in a new window > $('a[rel="lesson"]').click( function() { > window.open(this.href, "_blank", "channelmode=0, directories=0, > fullscreen=0, height=820, left=0, location=0, menubar=0, resizeable=1, > scrollbars=0, status=1, titlebar=1, toolbar=0, top=0, width=1044"); > return false; > > }); > > Now this works fine, however i also have seperate places on the page > that are pulling through other pages through the ajax call, however > the links dont activate the above bit of code. > > I have tried putting the above code in a variable like: > var openNew = function() { > $('a[rel="lesson"]').click( function() { > window.open(this.href, "_blank", "channelmode=0, directories=0, > fullscreen=0, height=820, left=0, location=0, menubar=0, resizeable=1, > scrollbars=0, status=1, titlebar=1, toolbar=0, top=0, width=1044"); > return false; > > }); > }; > > Then calling the variable when the page loads with: > openNew(); > > Then also calling it again in the complete option in the .ajax > request. This would then work for the links that have been pulled > through, however all links that were already on the page originally > would then open twice, or however many times the ajax request has been > called. > > Can anyone point me in the right direction as to how to fix this? > > Thanks > Paul