我将此函数放在一个单独的文件中,并在调用另一个javascript函数时加载。我需要这样做以达到" word_number" javascript文本编辑器实现的id。这个编辑器加载然后我调用我的函数。"
function wordsChange() {
if (window.addEventListener) {
document.getElementById('word_number').addEventListener('change', wordsK, false);
} else {
document.getElementById('word_number').attachEvent('onchange', wordsK);
}}
function wordsK(){
alert('im reading');}
调用wordsChange函数,但它不会触发wordsK函数。我不知道我做得怎么样,并且感谢任何建议。
抱歉缺乏信息。 我试图使用来自docksoft_stat插件的CKeditor输出,它在底部显示一个字计数器。 我需要这个信息来操作。 谢谢大家的所有快速答案。
答案 0 :(得分:0)
假设:您使用的是<textarea>
。
According to https://developer.mozilla.org/en-US/docs/Web/Events/change当您输入<textarea>
字段时,不会触发更改事件。只有当您点击<textarea>
以外的其他地方时才会触发它。
正如jrath建议的那样,请使用keydown
- 事件。每当按下一个键而textare-element具有焦点时,就会触发这个。
使用keyup
事件可能并不总是有效。可能的情况:您通过单击它来关注textarea
,然后按一个键(keydown
将被触发),然后在仍然按住键的同时单击textarea
之外的某个位置,然后释放键。由于keyup
字段已通过点击其他位置而失去焦点,因此不会触发textarea
事件。
答案 1 :(得分:0)
您没有调用wordsChange()
函数anywhare。尝试以下代码:
'function wordsChange() {
if (window.addEventListener) {
document.getElementById('word_number').addEventListener('change', wordsK, false);} else {
document.getElementById('word_number').attachEvent('onchange', wordsK);}
}
function wordsK(){alert('im reading');}
// add below line to your code;
wordsChange();
它会起作用;
由于
答案 2 :(得分:0)
document.getElementById('word_number')。addEventListener('change',wordsK,false);
只有在文本框获得焦点时才会触发。
您可以尝试使用绑定'keypress'或'keyup'或'keydown'事件,否则使用jQuery绑定事件,如下所示 $(的document.getElementById( 'word_number'))上( “输入”,wordsK);
这可能对ckeditor有用
答案 3 :(得分:0)
<强>解决!! 强>
我只是为这个问题找到了另一种解决方案。因为我无法在更改事件中读取word_number的值,我为CKeditor安装了@Alfonso(Gracias!)onchange插件并用于触发我的函数:
function wordsChange() {
for (var i in CKEDITOR.instances) {
CKEDITOR.instances[i].on('change', function() {
alert('text changed!');
});
}}
它完美地工作,现在我可以做任何我想做的事。 再次感谢大家的帮助!!