Ah, I see; I thought you meant the click on radios. Why not just use
simple event delegation? Put this in your domready function:

$('#list').click(function(e){
  console.log( $(e.target).text() );
});



On Apr 21, 10:36 am, Blaine <bla...@worldweb.com> wrote:
> I did look at the 'livequery', however it still did not seem to solve
> my issue.
>
> As for the above code working, you must do the following steps to see
> my issue.
>
> 1)  Load the Page
> 2) Click on one of the options.
> 3) A alert appears.
> 4) Click on the Radio Button 'Sort Desc'
> 5) Item are re-sorted
> 6) Click on one of the options.
> 7) NO alert appears... It should
>
> On Apr 21, 10:11 am, mkmanning <michaell...@gmail.com> wrote:
>
> > Your example code works fine for me. Your event is hard-coded (not the
> > best approach btw), and you're not overwriting the inputs (so you
> > wouldn't need .live() or the livequery plugin. Can you be more
> > specific about what you see happening?
>
> > On Apr 21, 7:21 am, Blaine <bla...@worldweb.com> wrote:
>
> > > Hi,
>
> > > I'm currently building a list when the document is ready, then
> > > performing a sort on the list if the user clicks "sort Asc" or "sort
> > > Desc". However, when the list is sorted and redisplayed, I lose the
> > > original "click" event.
>
> > > How can I keep this event after sort?
>
> > > Below is example code:
> > > <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
> > > <html>
> > > <head>
> > > <title>Untitled Document</title>
> > > <meta http-equiv="Content-Type" content="text/html;
> > > charset=iso-8859-1">
> > > <script type="text/javascript" src="http://www.google.com/jsapi";></
> > > script>
>
> > > <script language="JavaScript" type="text/javascript">
> > >         google.load("jquery", "1.2.6");
> > > </script>
>
> > > <script language="JavaScript" type="text/javascript">
> > > jQuery.fn.sort = function() {
> > >         return this.pushStack( jQuery.makeArray( [].sort.apply( this,
> > > arguments ) ) );
>
> > > };
>
> > > $(document).ready( function(){
>
> > >         for( var i = 1; 10 > i; i++){
> > >           var elm = $("<li />");
> > >           var a = $("<a />").append( document.createTextNode( 'click:
> > > ' + i ) );
> > >           $(a).click( function(){ alert('click:');   });
> > >           $(a).addClass("boldface");
> > >           $(elm).append(a);
>
> > >                   $('#list').append( elm );
> > >         }
>
> > > });
>
> > > function sortFunction(){
> > >         var elms =[];
> > >         if ( $('#sortDesc:checked').length > 0 ){
> > >                 elms = $('#list li').sort( function (a,b){
> > >                         if ( $(a).text() == $(b).text() ){ return 0; }
> > >                 return ($(a).text() > $(b).text() ) ? -1 : 1;
> > >                 });
> > >         }else{
> > >                 elms = $('#list li').sort( function (a,b){
> > >                         if ( $(a).text() == $(b).text() ){ return 0; }
> > >                 return ($(a).text() < $(b).text() ) ? -1 : 1;
> > >                 });
> > >         }
>
> > >         $('#list li').remove();
> > >         $('#list').append( elms );
>
> > > }
>
> > > </script>
>
> > > </head>
>
> > > <body>
>
> > > TEST LIST <P/>
> > > <input type="radio" id="sortDesc" name="sort" value="desc"
> > > onClick="sortFunction()">Sort Desc
> > > <input type="radio" id="sortAsc" name="sort" value="asc"
> > > checked="checked" onClick="sortFunction()">Sort Asc
> > > <ol id="list">
> > > </ol>
>
> > > </body>
> > > </html>

Reply via email to