小编Chr*_*ney的帖子

使用this._on()在jQuery UI Widget Factory中实时绑定事件

我目前正在开发一个级联树菜单.展开树项时,它会<div>在其下方创建新的,也可以展开.我可以得到第一组<div>绑定并因此扩展,但我似乎无法使用"this._on"方法自动绑定新创建的div.我正在寻找类似于live(),delegate()和on()的功能.

我已经在http://jsfiddle.net/vEAhq/上的 jsFiddle中发布了我的代码.

我在第60行的_setupEvents方法下设置了事件绑定.

回顾一下,在_create方法中调用的refresh方法中创建的元素绑定没问题.它是在_expand方法中创建的元素,不会像我期望的那样受到约束.

在此先感谢您的时间.

$.widget( "custom.categoryMenu", {

    options: {
        links: null
    },

    _create: function() {
        this.refresh();
        this._on('.categoryNavigationExpandIcon', {
            click: function(event) {
                var $container = $(event.target).parent();
                if( ($container).data('expanded') === false ) {
                    this._expand($container);
                } else {
                    this._contract($container);
                }
            }
        });
    },

    refresh: function() {
        var $elm = this.element;
        var $newElem;
        var $itemTree = this.options.links;
        var $itemTreeRoot = sortObj( $itemTree['1'], 'function', true );

        this._setupEvents();

        $.each( $itemTreeRoot, function( key, value ) {
            var ID = $itemTreeRoot[key]; …
Run Code Online (Sandbox Code Playgroud)

jquery jquery-ui jquery-ui-widget-factory

6
推荐指数
1
解决办法
9056
查看次数