jQuery: bind generated elements

Posted by superUntitled on Stack Overflow See other posts from Stack Overflow or by superUntitled
Published on 2011-01-15T19:50:41Z Indexed on 2011/01/15 19:53 UTC
Read the original article Hit count: 207

Filed under:
|

Hello, thank you for taking time to look at this.

I am trying to code my very first jQuery plugin and have run into my first problem. The plugin is called like this

<div id="kneel"></div>
<script type="text/javascript">
$("#kneel").zod(1, { });
</script>

It takes the first option (integer), and returns html content that is dynamically generated by php. The content that is generated needs to be bound by a variety of functions (such as disabling form buttons and click events that return ajax data.

The plugin looks like this (I have included the whole plugin in case that matters)...

(function( $ ){
  $.fn.zod = function(id, options ) {  

    var settings = {
      'next_button_text': 'Next',
      'submit_button_text': 'Submit'      
    };

        return this.each(function() {        
            if ( options ) { 
              $.extend( settings, options );
        }

        // variables
        var obj = $(this);

      /* these functions contain html elements that are 
      generated by the get() function below */

        // disable some buttons
           $('div.bario').children('.button').attr('disabled', true);

        // once an option is selected, enable the button
           $('input[type="radio"]').live('click', function(e) { 
          $('div.bario').children('.button').attr('disabled', false);
           })
        // when a button is clicked, return some data
           $('.button').bind('click', function(e) { e.preventDefault();
             $.getJSON('/returnSomeData.php, function(data) {
             $('.text').html('<p>Hello: ' + data + '</p>');
           });

    // generate content, this is the content that needs binding...
    $.get('http://example.com/script.php?id='+id, function(data) {
      $(obj).html(data);
    });

  });

  };
})( jQuery );

The problem I am having is that the functions created to run on generated content are not binding to the generated content. How do I bind the content created by the get() function?

© Stack Overflow or respective owner

Related posts about jQuery

Related posts about jquery-plugins