Nested "Select All" checkboxes
I have a suggestion.  Basically I'm not sure why you are adding so much to the HTML to handle the the parent and child checkboxes.  Isn't the hierarchy of the HTML enough to go on?  From the HTML you can already determine the parent and child relationships.  In additon why trigger more events.  Just handle the event as it bubbles up though the DOM.  

Below is an example of some code that I believe to be far more reusable and much easier to implement.  In addition, I have modified this to work with future checkboxes added to the DOM.  It may be necessary to load some of the children via AJAX and/or appending to the DOM therefore your method would require you to bind your function on each append to the DOM, where as mine would handle it though delegation of events.

$.fn.nestedCheckboxes = function (stopPropogation) {
    this.addClass('nestedCheckboxes');
    this.click(nestedCheckboxHandler);
    this.delegate(':has( &gt; input:checkbox)', 'click', nestedCheckboxHandler);
    function nestedCheckboxHandler (evt) {
        if ($(evt.target).is("input:checkbox")) {
            var parentContainer = $(this);
            var checkbox = parentContainer
                            .find(' &gt; input:checkbox:eq(0)');
            var parentCheckbox = parentContainer
                                    .parent()
                                    .closest(':has( &gt; input:checkbox)')
                                    .children('input:checkbox');

            if (evt.target == checkbox[0]) {
                $('input:checkbox', parentContainer)
                    .prop("checked", checkbox.prop("checked"));
            }
            var parentCheckboxValue = !parentCheckbox
                                        .parent()
                                        .find("input:checkbox")
                                        .not(parentCheckbox[0])
                                        .is("input:checkbox:not(:checked)");

            parentCheckbox.prop("checked",parentCheckboxValue);
        } else if (stopPropogation) {
            evt.stopPropagation();
        }
    };
};

$(function () {
    $('div').nestedCheckboxes();  //this is how you would use the function

    $('#addChildren').click(function () {
       $(this).after('&lt;ul&gt;&lt;li&gt;&lt;input type="checkbox" /&gt;&lt;label&gt;Child 2 SubChild 1&lt;/label&gt;&lt;/li&gt;&lt;li&gt;&lt;input type="checkbox" /&gt;&lt;label&gt;Child 2 SubChild2&lt;/label&gt;&lt;/li&gt;&lt;/ul&gt;');
       return false;
    });    

});


In addition I have added an option for the nestedCheckboxes to stopPropogation if an element other than a checkbox is clicked.  By default this if set to false.

Finally have a look at the fiddle I created and play around.  You will see that the HTML Markup is far more simplistic.

http://jsfiddle.net/jfhartsock/WwtJr/