从iframe禁用/启用后,jQuery UI按钮不起作用

时间:2012-05-08 15:16:36

标签: jquery jquery-ui button

我有一些jQuery代码,见下文:

$(function(){
    $('button#submit').button({disabled:true});
    $('button#submit').click(function(){
        console.log('It works!');
    });
    $('a#button-enable').click(function(){
        $('button#submit').button({disabled:false});
    });
});

如果未单击标识为button-enable的链接,则必须禁用该按钮。之后必须启用该按钮,如果我单击该按钮,则必须在控制台中输出文本It works!。为什么不发生?

当我从iframe启用按钮时会发生这种情况。

3 个答案:

答案 0 :(得分:0)

尝试

$(function(){
    $('button#submit').button("option", "disabled", true );
    $('a#button-enable').click(function(){
        $('button#submit').button("option", "disabled", false);
        $('button#submit').click(function(){
            alert('It works!');
        });
    });
});

这是http://jqueryui.com/demos/button/#option-disabled

这是一个jsfiddle:http://jsfiddle.net/tmx8t/

答案 1 :(得分:0)

我已经清理了一下你的代码并让它像你描述的那样工作。

$(function() {
    var button = $('#submit').button({
        disabled: true
    }).click(function() {
        alert('It Works');
    });
    $('#button-enable').click(function() {
        button.button('enable');
    });
});​

查看小提琴here

答案 2 :(得分:0)

谢谢大家的回答。我用以下方式解决了这个问题:

<强> parent.html

$(function{
    $('button, input[type="submit"]').button();
    $('button#submit').button('disable');
    $(document).bind('enableButton',function(){
        $('button#submit').button('enable');
    });
    $('button#submit').click(function(){
        //...
    });
});

<强> Iframe.html的

$(function(){
    //...
    parent.$(parent.document).trigger('enableButton');
});