我正在使用名为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>
答案 0 :(得分:1)
我发现代码是summernote js首先加载,这就是为什么没有显示
我将它添加到视图文件的底部,我将其称为summernote文本区域
并添加了这个
<script type="text/javascript">
$(document).ready(function() {
$('button[data-event="showImageDialog"]').attr('data-toggle', 'image').removeAttr('data-event');
});
</script>
立即行动。