覆盖summernote图像弹出不起作用

时间:2015-04-14 12:51:49

标签: javascript codeigniter summernote

我正在使用名为summernote的文本编辑器和codeigniter。我也有自己想要使用的图像管理器。

在我的java脚本代码中,我设置了它,因此我的图像管理器应该 OVERRIDE 在summernote编辑器中弹出的图像。它不是每次我点击summernote编辑器按钮插入图像时它仍然显示默认的插入图像。

我不确定为什么弹出的默认插入图片仍在显示?

我很确定,因为没有添加 data-toggle =“image”

这部分不起作用$('button[data-event=\'showImageDialog\']').attr('data-toggle', 'image').removeAttr('data-event');

确保我的图片管理器覆盖它的最佳做法是什么。

filename common.js

$(document).ready(function() {

// Override summernotes image manager
$('button[data-event=\'showImageDialog\']').attr('data-toggle', 'image').removeAttr('data-event');

$(document).delegate('button[data-toggle=\'image\']', 'click', function() {
    $('#modal-image').remove();

    $(this).parents('.note-editor').find('.note-editable').focus();

    $.ajax({
         url: 'admin/filemanager',
        dataType: 'html',
        beforeSend: function() {
            $('#button-image i').replaceWith('<i class="fa fa-circle-o-notch fa-spin"></i>');
            $('#button-image').prop('disabled', true);
        },
        complete: function() {
            $('#button-image i').replaceWith('<i class="fa fa-upload"></i>');
            $('#button-image').prop('disabled', false);
        },
        success: function(html) {
            $('body').append('<div id="modal-image" class="modal">' + html + '</div>');

            $('#modal-image').modal('show');
        }
    }); 
});

// Image Manager

$(document).delegate('a[data-toggle=\'image\']', 'click', function(e) {
    $('#modal-image').remove();
    e.preventDefault();

    var element = this;

    $(element).popover({
        html: true,
        placement: 'right',
        trigger: 'manual',
        content: function() {
            return '<button type="button" id="button-image" class="btn btn-primary"><i class="fa fa-pencil"></i></button>';
        }
    });

    $(element).popover('toggle');       

    $('#button-image').on('click', function() {
        $.ajax({
            url: 'admin/filemanager/?input=' + $(element).parent().find('input').attr('id') + '&element='+ $(element).attr('id'),
            dataType: 'html',
            beforeSend: function() {
                $('#button-image i').replaceWith('<i class="fa fa-circle-o-notch fa-spin"></i>');
                $('#button-image').prop('disabled', true);
            },
            complete: function() {
                $('#button-image i').replaceWith('<i class="fa fa-upload"></i>');
                $('#button-image').prop('disabled', false);
            },
            success: function(html) {
                $('body').append('<div id="modal-image" style="" class="modal fade">' + html + '</div>');                                      
                $('#modal-image').modal('show');
            }
        });

        $(element).popover('hide');
    });
});
});

标题

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0" />
<title><?php echo $title;?></title>
<base href="<?php echo base_url();?>"></base>
<link rel="stylesheet" type="text/css" href="<?php echo base_url();?>assets/admin/css/bootstrap.css" media="screen">
<link rel="stylesheet" type="text/css" href="<?php echo base_url();?>assets/admin/css/custom.css" media="screen">
<link rel="stylesheet" type="text/css" href="<?php echo base_url();?>assets/admin/summernote/summernote.css">
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script type="text/javascript" src="<?php echo base_url();?>assets/admin/summernote/summernote.js"></script>
<script type="text/javascript" src="<?php echo base_url();?>assets/admin/js/common.js"></script>
</head>

1 个答案:

答案 0 :(得分:1)

我发现代码是summernote js首先加载,这就是为什么没有显示

我将它添加到视图文件的底部,我将其称为summernote文本区域

并添加了这个

<script type="text/javascript">
$(document).ready(function() {
    $('button[data-event="showImageDialog"]').attr('data-toggle', 'image').removeAttr('data-event');    
});
</script>

立即行动。