JQuery 没有接受对 div 的更改
JQuery is not picking up on changes to a div
每当更新 div 时,我都会计算 div 中 <img>
标签的数量。 HTML 就是:
<div id="Description" contenteditable="true"></div>
每当 div 的内容发生变化时,我希望 JQuery 计算 div 中的图像数量。所以我写了这个:
$(document).on('change', '#Description', function(e) {
var filenumber = $('#Description img').length;
alert(filenumber);
});
问题是没有任何反应。当我在 div 中输入内容或插入图像时,我没有收到提醒。我忽略了一些简单的事情吗?我正在使用 CKEditor 作为 div 的富文本编辑器,但我认为这不是问题,但我不是专家。
这是一个演示问题的 JSFiddle http://jsfiddle.net/jLnLmspn/1/
我不是 javascript 专家,但我认为 onchange 事件不能与 div
元素结合使用,只能与输入元素结合使用。因此,要获得您想要的行为,我能想到的最明显的方法是检查实际的 input
事件(字面意思是 input
事件)或定期轮询。要使用输入事件(我 认为 是 HTML5 特定的,也许吧?),你可以这样做:
$(document).on('input', '#Description', function(e) {
var filenumber = $('#Description img').length;
alert(filenumber);
});
不过请注意,这会引发 很多。
您的 onchange 事件没有触发,因为您正在输入一个 contenteditable div,而不是输入元素。有关如何使用 div 执行类似于 onchange 的操作的更多信息,请参阅此线程:contenteditable change events
尝试在 #Description
输入 <img>
$('#Description').on("keyup keydown", function(e) {
var html = $.parseHTML(e.target.textContent)
, filtered = $(html).filter("img")
, imgs = filtered.is("*")
? filtered.length + " images found"
: "0 images found";
console.log(imgs);
});
#Description {
height: 500px;
width: 300px;
border: 1px solid #000;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="Description" contenteditable="true"></div>
每当更新 div 时,我都会计算 div 中 <img>
标签的数量。 HTML 就是:
<div id="Description" contenteditable="true"></div>
每当 div 的内容发生变化时,我希望 JQuery 计算 div 中的图像数量。所以我写了这个:
$(document).on('change', '#Description', function(e) {
var filenumber = $('#Description img').length;
alert(filenumber);
});
问题是没有任何反应。当我在 div 中输入内容或插入图像时,我没有收到提醒。我忽略了一些简单的事情吗?我正在使用 CKEditor 作为 div 的富文本编辑器,但我认为这不是问题,但我不是专家。
这是一个演示问题的 JSFiddle http://jsfiddle.net/jLnLmspn/1/
我不是 javascript 专家,但我认为 onchange 事件不能与 div
元素结合使用,只能与输入元素结合使用。因此,要获得您想要的行为,我能想到的最明显的方法是检查实际的 input
事件(字面意思是 input
事件)或定期轮询。要使用输入事件(我 认为 是 HTML5 特定的,也许吧?),你可以这样做:
$(document).on('input', '#Description', function(e) {
var filenumber = $('#Description img').length;
alert(filenumber);
});
不过请注意,这会引发 很多。
您的 onchange 事件没有触发,因为您正在输入一个 contenteditable div,而不是输入元素。有关如何使用 div 执行类似于 onchange 的操作的更多信息,请参阅此线程:contenteditable change events
尝试在 #Description
<img>
$('#Description').on("keyup keydown", function(e) {
var html = $.parseHTML(e.target.textContent)
, filtered = $(html).filter("img")
, imgs = filtered.is("*")
? filtered.length + " images found"
: "0 images found";
console.log(imgs);
});
#Description {
height: 500px;
width: 300px;
border: 1px solid #000;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="Description" contenteditable="true"></div>