在jQuery中不必要地触发Mouseleave函数?

时间:2012-10-31 10:54:32

标签: jquery ckeditor mouseleave

大家好我正在jquery mouseleave活动,我有ckeditor。我需要在进入鼠标时显示ckeditor,当鼠标离开时需要触发。我做到了。

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

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

     <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

enter image description here

这是选择应用字体

的时候

when i selected the styles

这里被解雇了

enter image description here

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

1 个答案:

答案 0 :(得分: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"); 
    }
});