jQuery 文本编辑器 (jqte),使用 change 事件
jQuery Text Editor (jqte), using change event
我正在尝试使用 jQuery 文本编辑器 (jqte) 为 change()
事件编写一些代码,我有两个函数可以为 jqte 提供功能文本区域的
当点击页面中的某些元素时,加载 JavaScript 的编辑器:
function onLoadEditor(){
jQuery(".comment-editor").jqte({
// some jqte params, such as fsize: false,indent: false...
change: function(){ observeEditor(); }
});
}
以及其他通用函数,适用于只有一个编辑器的页面
jQuery(function() {
jQuery(".comment-editor").jqte({
// some jqte params, such as fsize: false,indent: false...
change: function(){ observeEditor(); }
});
});
我想访问已触发 change()
事件
的具体文本区域的 ID(页面中的所有文本区域都有一个 ID)
我应该如何编写 observeEditor()
函数来实现这一点?或者...我应该如何在 jqte 更改 属性?
中定义函数
读完这个jQuery blur event with ID and value我已经解决了,用下面的代码(简化)
function onLoadEditor(){
jQuery(".comment-editor").each(function(idx, elem) {
jQuery(this).jqte({
// some jqte params, such as fsize: false,indent: false...
change: observeEditor(elem.id),
});
}
jQuery(function() {
onLoadEditor();
});
但是现在我遇到了另一个问题...
正如您在原始问题中所读到的,单击页面中的某些元素时会调用 onLoadEditor()
。然后调用另一个 javascript 函数 jsComment()
,构建一个表单(包含一个 textarea.comment-editor
字段)并以这种方式呈现
function jsComment(){
...
var form = '<div class="comments_wrapper ... ';
jQuery(form).insertAfter(some_element).fadeIn('fast');
onLoadEditor();
}
问题是 change()
事件仅在表单淡入时触发一次,而想法恰恰相反,事件应该在用户添加一些文本时触发,而不是在出现时触发...有什么提示吗?
更新
看完后Event binding on dynamically created elements?我是这样解决的
function onLoadEditor(){
jQuery('.comment-editor').each(function(idx, elem) {
jQuery(this).jqte({
// some jqte params, such as fsize: false,indent: false...
});
jQuery(document).on('change',
jQuery('.comment-editor'),
function(){
observeEditor(elem.id);
}
);
});
}
jQuery(function() {
onLoadEditor();
});
虽然最后我没有使用 change()
事件,因为它一直在被触发。使用 keyup()
& paste()
表现更好,例如
我正在尝试使用 jQuery 文本编辑器 (jqte) 为 change()
事件编写一些代码,我有两个函数可以为 jqte 提供功能文本区域的
当点击页面中的某些元素时,加载 JavaScript 的编辑器:
function onLoadEditor(){
jQuery(".comment-editor").jqte({
// some jqte params, such as fsize: false,indent: false...
change: function(){ observeEditor(); }
});
}
以及其他通用函数,适用于只有一个编辑器的页面
jQuery(function() {
jQuery(".comment-editor").jqte({
// some jqte params, such as fsize: false,indent: false...
change: function(){ observeEditor(); }
});
});
我想访问已触发 change()
事件
我应该如何编写 observeEditor()
函数来实现这一点?或者...我应该如何在 jqte 更改 属性?
读完这个jQuery blur event with ID and value我已经解决了,用下面的代码(简化)
function onLoadEditor(){
jQuery(".comment-editor").each(function(idx, elem) {
jQuery(this).jqte({
// some jqte params, such as fsize: false,indent: false...
change: observeEditor(elem.id),
});
}
jQuery(function() {
onLoadEditor();
});
但是现在我遇到了另一个问题...
正如您在原始问题中所读到的,单击页面中的某些元素时会调用 onLoadEditor()
。然后调用另一个 javascript 函数 jsComment()
,构建一个表单(包含一个 textarea.comment-editor
字段)并以这种方式呈现
function jsComment(){
...
var form = '<div class="comments_wrapper ... ';
jQuery(form).insertAfter(some_element).fadeIn('fast');
onLoadEditor();
}
问题是 change()
事件仅在表单淡入时触发一次,而想法恰恰相反,事件应该在用户添加一些文本时触发,而不是在出现时触发...有什么提示吗?
更新 看完后Event binding on dynamically created elements?我是这样解决的
function onLoadEditor(){
jQuery('.comment-editor').each(function(idx, elem) {
jQuery(this).jqte({
// some jqte params, such as fsize: false,indent: false...
});
jQuery(document).on('change',
jQuery('.comment-editor'),
function(){
observeEditor(elem.id);
}
);
});
}
jQuery(function() {
onLoadEditor();
});
虽然最后我没有使用 change()
事件,因为它一直在被触发。使用 keyup()
& paste()
表现更好,例如