函数jquery中的变量函数范围

时间:2017-01-26 01:53:03

标签: javascript jquery

我有这个jquery函数扩展,但redColorBtn的exec命令似乎不起作用。如果我将var iframeDocument定义移动到redColorBtn函数内部,那么它可以工作。但是,我无法理解为什么会发生这种情况。我认为这是因为变量范围,但iframe定义也不应该在redColorBtn click函数之外工作。有谁知道吗?

$.extend({
 handleToolbarEvents: function(iframeDocumentId) {
     var iframe          = document.getElementById(iframeDocumentId);
     var iframeDocument  = iframe.contentWindow.document;
     var redColorBtn     = document.getElementById('rte-redColorBtn-' + iframeDocumentId);

     $(redColorBtn).click(function() {
        var command = $(this).val();//foreColor
        iframeDocument.execCommand(command, false, "red");
     });

     $('.rte-button').click(function() {
        var command        = $(this).val();
        var iframeID       = $(this).closest('iframe[class="rte-iframe"]');
        var iframeDocument = iframe.contentWindow.document;
        iframeDocument.execCommand(command, null, null);
    });
 }
});

1 个答案:

答案 0 :(得分:0)

我曾经遇到过同样的问题,我添加了点击事件,但它不起作用。如果你动态地添加redColorBtn它可能是你的问题。你可以尝试redColorButton.bind('click', function(){});我不知道为什么,但它对我有用。

希望它有效。