0

大家好,我正在mouseleave这里处理 jquery 事件ckeditor。当我进入鼠标时我需要显示ckeditor,当鼠标离开这里时需要开火。我已经做到了。

输入时,它会显示(第一张图片)并在ckeditor写一些文字时,当应用一些字体(第二张图片)时,它的触发装置ckeditor将隐藏(第三张图片)。我认为字体在某个单独的 div 中打开,但是一旦鼠标离开 div,我就需要触发它ckeditor

请检查一次这是我的代码:

     <script type="text/javascript">
    $(document).ready(function () {

        $('#btndiv1').hide();

        $('#btndiv').hover(function () {
            $('#btndiv1').show();
        });
        });
</script>
<script type="text/javascript">
    $(document).ready(function () {
    var editor = CKEDITOR.editor.replace('editor1');
    $('#btndiv').mouseleave(function (event) {
        $('#btndiv1').hide("slow");
            alert(1);
            var value = editor.getData();
            alert(value);
            $('#btndiv').append(value);

        });
    });

       </script>

这是我的html代码:

    <div id="btndiv" style="height:400px;width:800px; border:1px solid ">
    <div id="btndiv1" style="height:auto;width:auto; border: 1px solid  ;">
    <textarea  rows="10"   id="editor1"> </textarea>

        </div>
</div>

这是鼠标输入时的ckeditor

在此处输入图像描述

这是选择应用字体的时候

当我选择样式时

在这里它被解雇了

在此处输入图像描述

但是当用户完成自己的文本设计时我需要触发它。我怎样才能做到这一点?任何帮助表示赞赏,谢谢。

4

1 回答 1

0

CKEditor 在 DOM 的最末端附加浮动框,例如字体选择器,就在正文结束标记之前。因此它在您的 div#btndiv1 之外,所以这就是它触发 mouseleave 事件的原因。

附加的 div 总是具有相同的类“cke_skin_kama”,所以也许你可以在决定隐藏编辑器之前检查我们是否正在填充这个 div。

像这样的东西(未经测试):

$('#btndiv').mouseleave(function (event) {
    if (!event.toElement.hasClass('cke_skin_kama')) {
        $('#btndiv1').hide("slow"); 
    }
});
于 2012-10-31T11:24:50.657 回答