1

我们正在使用 gem 'bootstrap-wysihtml5-rails'、'0.3.1.13'。当焦点丢失时,我想保存文本区域中更改的内容。

我尝试在视图中直接使用 jquery,并被脚本标签包围:

$("textarea").live("blur", function(){ alert("Focus lost"); });

如果我使用“模糊”(或聚焦),则在页面加载时会触发几次警报,但在失去焦点时不会触发,当我使用“更改”时,什么都不会发生。

在另一次尝试中,我尝试以相同的行为挂钩 wysihtml5-event:

function integrate_wysihtml5() {
var editor = $('.wysihtml5').each(function(i, elem) {
    $(elem).wysihtml5({
        "font-styles": false, //Font styling, e.g. h1, h2, etc. Default true
        "emphasis": true, //Italics, bold, etc. Default true
        "lists": true, //(Un)ordered lists, e.g. Bullets, Numbers. Default true
        "html": false, //Button which allows you to edit the generated HTML. Default false
        "link": false, //Button to insert a link. Default true
        "image": false, //Button to insert an image. Default true,
        "color": false //Button to change color of font  
    });
});

function onChange() { alert("The content of the editor has changed"); };
editor.on("change", onChange);

}

4

3 回答 3

2
$('.textarea').wysihtml5({
    events: {
        change: function() {
            var html = this.textarea.getValue();
            //ajax method
        }
    }
}
于 2013-01-22T13:04:44.277 回答
0

捕捉变化事件的好方法:

editor.composer.element.addEventListener("keyup", myOnChange);
editor.on("aftercommand:composer", myOnChange);

但我不认为你的每一个都很好,wysihtml5 不能在多个可编辑部分上工作,这里你使用引导版,但我认为它是一样的。这就是我写jquery.scribe的主要原因

所以,也许是这样?

$('.wysihtml5').each(function(i, elem) {
    var editor = $(elem).wysihtml5({
        "font-styles": false, //Font styling, e.g. h1, h2, etc. Default true
        "emphasis": true, //Italics, bold, etc. Default true
        "lists": true, //(Un)ordered lists, e.g. Bullets, Numbers. Default true
        "html": false, //Button which allows you to edit the generated HTML. Default false
        "link": false, //Button to insert a link. Default true
        "image": false, //Button to insert an image. Default true,
        "color": false //Button to change color of font  
    });

    editor.composer.element.addEventListener("keyup", myOnChange);
    editor.on("aftercommand:composer", myOnChange);
});
于 2013-01-22T13:18:22.350 回答
0

我正在像这样附加侦听器:

$("#msgtextarea").data("wysihtml5").editor.on("change",function(){
   // Do your stuff
})

希望能帮助到你。

于 2017-11-03T14:01:16.260 回答