Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

jquery onclick click event

Tags:

jquery

onclick

I have div which has an onlcick event. Now when i click the div i want to change its onlick function with .click attribute of jquery. I am able to change it dynamically, but when i apply it the new event also gets fired. Is there any work around so that the new is not fired but just applied to the div with new function? Here is what i am trying to do

i have a div

<script type="text/javascript">

function testMe(data)
{
   alert(data);
   $('#testMe').unbind('click');
   $('#testMe').click(function(){ testMe('2');  });
}

</script>
    <div id='testMe' onclick='testMe(1)' >click on me, I will disappear.</div>

when I execute theabove code i still get value 1 om alert box THANKS EveryOne

Also i tried the below code but it is not working for me

 function testMe(data)
{
   alert(data);
   $('#testMe').unbind('click');
   $('#testMe').click( testMe(2) );
}

Though the code is updating the onlick event from 'testMe(1)' to 'testMe(2)' but it continuously alerts value 2. The work around this problem is traditional JS script code as:

 document.getElementById('testMe').onclick =  testMe(2) ;

And its working without alerts.

like image 439
user367134 Avatar asked Feb 28 '26 03:02

user367134


1 Answers

use the 'one' function

$('element').one('click',function()
{
    alert('old click handler');
    $(this).click(function(){
        alert('new click handler, yarrrr');
    });
});
like image 143
DoXicK Avatar answered Mar 03 '26 00:03

DoXicK