隐藏和显示kendo ui编辑器工具栏

时间:2013-08-30 07:38:42

标签: javascript jquery kendo-ui

我正在使用kendo ui编辑器控件。最初我只显示可编辑区域和隐藏编辑器工具栏,如

<style>
  .k-editor-toolbar
    {
       display:none;
    }
</style>

我在kendo ui编辑器的选择功能中表示如

 $("#editor").kendoEditor({
     select: function(e){
         $(".k-editor-toolbar").show();
      }
 });

除了kendo ui编辑器中的可编辑区域外,我想隐藏正文上的工具栏。我试过像

    $('body').on('click', ':not(#editor)', function () {
           $(".k-editor-toolbar").hide();
       });

但这不起作用。在选择工具栏中的下拉列表时,它也隐藏了。当我点击工具栏上的任何东西时,我不想隐藏工具栏。我怎么能这样做

2 个答案:

答案 0 :(得分:0)

这很有意思。 DropDownList使用的Editor实际上是SelectBox。这意味着我必须改为使用.data('kendoSelectBox')

这是 fiddle 。这是代码:

$(function () {
    var $log = $('#log'), fontDDL, isOpen = false;

    $("#editor").kendoEditor({
        select: function (e) {
            $(".k-editor-toolbar").show();
            $('#log').prepend('<div>Focused</div>');
        }
    });

    fontDDL = $('[data-role=selectbox]').data('kendoSelectBox');
    fontDDL.bind('open', function () {
        isOpen = true;
        $(".k-editor-toolbar").show();
        $('#log').prepend('<div>Opened</div>');
    });
    fontDDL.bind('close', function () {
        isOpen = false;
        $(".k-editor-toolbar").hide();
        $('#log').prepend('<div>Closed</div>');
    });

    $($('.k-editor').find('iframe')[0].contentWindow).blur(function () {
        $('#log').prepend('<div>Blurred</div>');
        // Kind of a hack because there's no better way to hook into the font
        // dropdownlist open event and it is triggered after the blur. Tweak
        // the timeout value to whatever works best for you. 200ms
        // is slightly conservative
        setTimeout(function () {
            $('#log').prepend('<div>Is font DDL open? ' + isOpen + '</div>');
            if (!isOpen) {
                $(".k-editor-toolbar").hide();
            }
        }, 200);
    });
});

答案 1 :(得分:0)

$scope.$on('kendoWidgetCreated', function(event, widget) {
    $('.k-editor-toolbar').hide();
}