代码之家  ›  专栏  ›  技术社区  ›  Pickels

jqueryui:动态创建的元素上的按钮

  •  3
  • Pickels  · 技术社区  · 14 年前

    我想将jqueryui按钮添加到我提交的所有输入中。

    $('input:submit').button();
    

    这对普通按钮很有用,但对我动态创建的按钮不起作用。

    有人知道怎么做吗?

    2 回复  |  直到 14 年前
        1
  •  1
  •   WalterJ89    14 年前

    最简单的方法是在创建新按钮时添加这一行。

    $(this).button();
    

    例如

    (jQuery to create button) function(){
        $(this).button();
    }
    

    $('input:submit').button();
    

    编辑: 看了什么之后jQuery.tmpl文件你也许可以做一些

    $("#sometmpl")
        .render( arrayOfDataObjects ) // Returns multiple LIs with data filled in
        .appendTo("ul" function(){
        $("#sometmpl input:submit").button();
    )};
    

    但别逼我这么做。

    或者看看jqueryuicss,只需将所需的类添加到submit按钮。不过,悬停可能不起作用

    class="ui-button ui-widget ui-state-default ui-corner-all ui-button-icon-only"
    
        2
  •  0
  •   Pickels    14 年前

    我认为在我的应用程序中演示如何修复它会很有用。这是我真实代码的简明版本,我没有测试过,可能会有拼写错误。

    var app = (function(){
        var general = (function(){
    
            function init(){
                init_jquery_ui();
            };
    
            function init_jquery_ui(){
                //init stuff
    
                $('body').bind('added_tmpl', function(){
                    //init stuff
                });
            };
    
            function add_tmpl(tmpl_node, append_to_node, data){
                tmpl_node.tmpl(data).appendTo(append_to_node);
                append_to_node.trigger('added_tmpl');
            };
    
            return{
                init: init,
                add_tmpl: add_tmpl
            };
    
        })();
    
        var somepage = (function(){
    
            function init(){
                load_some_form();
            };
    
            function load_some_form(){
                var data = { name: 'hello', age: 15 };
                general.add_tmpl($('#some_form_tmpl'), $('#some_form'), data);  
            };
    
            return{
                init: init
            };
    
        })();
    
        return{
            general: general,
            somepage: somepage
        };
    
    })();
    
    app.general.init();
    
    if(page=='somepage'){
        app.somepage.init();
    };