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

在jQuery中不必要地触发Mouseleave函数?,jquery,ckeditor,mouseleave,Jquery,Ckeditor,Mouseleave,大家好,我正在处理jquerymouseleave事件,这里有ckeditor。当我进入鼠标时,我需要显示ckeditor,当鼠标离开这里时,我需要启动。我已经做到了 当输入时,它显示(第一个图像)并在ckeditor中写入一些文本,当应用一些字体(第二个图像)时,它的触发意味着ckeditor将隐藏(第三个图像)。我想字体是在某个单独的div中打开的,但一旦鼠标离开ckeditordiv,我就需要启动它 请检查一下这是我的代码: <script type="text/javas

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

当输入时,它显示(第一个图像)并在
ckeditor
中写入一些文本,当应用一些字体(第二个图像)时,它的触发意味着
ckeditor
将隐藏(第三个图像)。我想字体是在某个单独的div中打开的,但一旦鼠标离开
ckeditor
div,我就需要启动它

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

     <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>

$(文档).ready(函数(){
$('#btndiv1').hide();
$('#btndiv')。悬停(函数(){
$('btndiv1').show();
});
});
$(文档).ready(函数(){
var editor=CKEDITOR.editor.replace('editor1');
$('#btndiv').mouseleave(函数(事件){
$('btndiv1')。隐藏(“慢”);
警报(1);
var value=editor.getData();
警报(值);
$('#btndiv')。追加(值);
});
});
下面是我的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

这是在选择应用字体时

在这里,它被点燃了


但我需要在用户完成自己的文本设计后启动它。我该怎么做?感谢您的帮助。

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

附加的div始终具有相同的类“cke_skin_kama”,因此在决定隐藏编辑器之前,您可以检查我们是否对该div进行了权限设置

类似于此(未经测试):


不,我已经更新了我的html div u can check it@Pulkit Mitta这是我的ckeditor check it onceWhat,你依赖的是用户只有在完成设计后才从编辑器中滑鼠出来!?如果用户在键入文本时选择将光标停在屏幕上的其他位置,该怎么办?在这种情况下,mouseleave上的闭包是不合适的。必须让用户执行积极的操作,最合适的方法是单击“确定”或“保存”按钮。你也可以考虑取消。button.你说得对Beetroot先生Beetroot我用save按钮试过了它在工作但任务需要在mouseenter/Mouseeleve功能上完成只有我的任务我必须做但在Mouseeleve功能上它开火怎么可能实现有没有办法如果这是一个练习来证明你对mouseenter/Mouseeleve的掌握,然后,您需要选择除激活/停用编辑器之外的其他内容。或者,如果mouseenter/mouseleave是针对设计概要的某个方面而采用的,那么您必须回到负责人那里,礼貌地告诉他们,他们对设计施加了不可行的约束。好的编程从最高级别开始。没有使用尝试过但没有使用一旦鼠标移到它上面将显示ck编辑器,但万一隐藏不工作,我的回复@skiplecariboo有更多帮助这里有给定的“cke_skin_kama”我如何附加我应该调用div或我可以直接申请它\
$('#btndiv').mouseleave(function (event) {
    if (!event.toElement.hasClass('cke_skin_kama')) {
        $('#btndiv1').hide("slow"); 
    }
});