WYM 编辑器 - 阻止重复插入的发生

发布于 2024-12-01 00:48:44 字数 2386 浏览 1 评论 0原文

我在一个项目中使用WYMeditor,效果非常好并且易​​于使用。我添加了一个自定义按钮,用于打开包含图像缩略图的模式。单击图像,它将被插入到 WYMeditor 中。问题是,单击的第一个图像很棒,但如果您尝试插入超过 1 个图像,它会“加倍”,即第一个图像单击 = 1 个图像插入,第二个图像单击 = 2 个图像插入,第三个单击 = 3 个图像插入,依此类推在。在图像插入后,我还得到一个 "" ,这根本不需要。我看不出为什么会发生任何线索。这是 WYM 插入的代码。

jQuery('.wymeditor').wymeditor({
    html: '<p>Hello, World!<\/p>',
    postInit: function(wym) {
        var html = "<li class='wym_tools_newbutton'>"
                 + "<a name='NewButton' href='#'"
                 + " style='background-image:"
                 + " url(includes/js/wymeditor/img/media.png);'"
                 + " title='Insert an image' >"
                 + "</a></li>";
       jQuery(wym._box).find(wym._options.toolsSelector + wym._options.toolsListSelector).append(html);
       jQuery(wym._box).find('li.wym_tools_newbutton a').click(function() {
            jQuery('#modal').show().css( { 'left': (winW-980)/2+'px', 'top': '100px' } ).load('includes/admin/adminListMedia.php');
                jQuery('.imgname').live('change',function(){
                var InsertImg = '#'+jQuery(this).attr('id');
                wym.insert('<img src="http://127.0.1/admin/includes/uploads/'+jQuery(InsertImg).val()+'" />');
                jQuery('#modal').empty().hide();
             });
            return(false);
        });

正如您所看到的,我在插入时关闭并清空模式,我这样做是为了尝试“清除”重复项,但它不起作用,这是“模式”代码:

<?php
if ($handle = opendir('../../includes/uploads/thumb/')) {
    while (false !== ($file = readdir($handle))) {
        if ($file != "." && $file != "..") { ?>
            <div class="MediaImgSelect  wym_src">';
                <img src="includes/uploads/thumb/<?php echo $file; ?>" width="90px" height="90px"/>';
                Size 
                <select class="imgname" id="<?php echo 'img_'.substr($file,0,-4); ?>">
                <option value="Select">Select</option>
                <option value="thumb/<?php echo $file; ?>">Thumb</option>
                <option value="thumb/<?php echo $file; ?>">Small</option>
                <option value="thumb/<?php echo $file; ?>">Large<option>
                </select>
                </div>
        <?php }
    }
    closedir($handle);
}

?>

I am using WYMeditor in a project which works very well and is easy to use. I have added a custom button which opens a modal containing thumbnails of images. Click on the image and it gets inserted into the WYMeditor. Problem is that the first image clicked is great, but if you try to insert more than 1 image it "doubles up" i.e. first image click = 1 image insert, second image click = 2 image inserts, third click = 3 image inserts and so on. I also get a "</span>" after the image insert this is not needed at all. I cannot see why this is happening any clues. Here is the code for the WYM insert.

jQuery('.wymeditor').wymeditor({
    html: '<p>Hello, World!<\/p>',
    postInit: function(wym) {
        var html = "<li class='wym_tools_newbutton'>"
                 + "<a name='NewButton' href='#'"
                 + " style='background-image:"
                 + " url(includes/js/wymeditor/img/media.png);'"
                 + " title='Insert an image' >"
                 + "</a></li>";
       jQuery(wym._box).find(wym._options.toolsSelector + wym._options.toolsListSelector).append(html);
       jQuery(wym._box).find('li.wym_tools_newbutton a').click(function() {
            jQuery('#modal').show().css( { 'left': (winW-980)/2+'px', 'top': '100px' } ).load('includes/admin/adminListMedia.php');
                jQuery('.imgname').live('change',function(){
                var InsertImg = '#'+jQuery(this).attr('id');
                wym.insert('<img src="http://127.0.1/admin/includes/uploads/'+jQuery(InsertImg).val()+'" />');
                jQuery('#modal').empty().hide();
             });
            return(false);
        });

As you can see I close and empty the modal on insert, I did this in an attempt to "clear" the duplication, but it does not work and this is the "modal" code:

<?php
if ($handle = opendir('../../includes/uploads/thumb/')) {
    while (false !== ($file = readdir($handle))) {
        if ($file != "." && $file != "..") { ?>
            <div class="MediaImgSelect  wym_src">';
                <img src="includes/uploads/thumb/<?php echo $file; ?>" width="90px" height="90px"/>';
                Size 
                <select class="imgname" id="<?php echo 'img_'.substr($file,0,-4); ?>">
                <option value="Select">Select</option>
                <option value="thumb/<?php echo $file; ?>">Thumb</option>
                <option value="thumb/<?php echo $file; ?>">Small</option>
                <option value="thumb/<?php echo $file; ?>">Large<option>
                </select>
                </div>
        <?php }
    }
    closedir($handle);
}

?>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

草莓味的萝莉 2024-12-08 00:48:44

实际上我得到了答案,在函数中使用 .bind 而不是 .live

Actually I got the answer use .bind not .live in the function

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文