自定义插件,必须单击确定两次?

时间:2015-08-21 14:35:27

标签: javascript plugins ckeditor ckeditor4.x

尝试创建自己的插件并设法将基本的插件排序。

我添加了自定义文字字段,以便我可以使用以下格式向元素添加自定义属性 {" data-title":"我的数据标题&#34 ;,"数据-ID":" 001"} 即可。我也可以编辑元素,然后返回自定义属性。

这很好用,可以添加我喜欢的数量。麻烦的是当我想删除一个,我只是从文本字段中删除它并单击确定,但我必须单击它两次,不能说明原因。这是我到目前为止所获得的代码,可能有更好的方法来做到这一点,但这种方法有效。

commit: function(element) {

//core attributes to ignore
var ignoreArr=["href","id","name","data-cke-saved-href","class","style","title"];

//add to ignore Array, attributes to keep
var data=$.parseJSON('['+this.getValue()+']');
if(data) {
    $(data).each(function(i,val){
        $.each(val,function(k,v){
            ignoreArr.push(k);     
        });
    });

}
//alert(ignoreArr);

//remove all uneeded custom attributes first
$.each(element.$.attributes, function(k,v) {
    if(v) { //MOD :: had to add this check in to stop the double click
        if(jQuery.inArray(v.name,ignoreArr)==-1) {
            element.removeAttribute(v.name);                                
        } 
    }
});

//will create custom attributes
if(data) {
    $(data).each(function(i,val){
        $.each(val,function(k,v){
            element.setAttribute(k,v);     
        });
    });
}   //end if data

}

问题似乎是这行 element.removeAttribute(v.name); ,如果我用警报替换它,一切正常。现在双击并不是世界末日,我只是讨厌为什么,我不知道为什么,任何人都会得到一个建议/解决方案。

0 个答案:

没有答案