我有一些可用的 jQuery 函数,例如:
$(".selector").bind("change blur",function()
{
$(this).css({"background-size": "22px 22px"});
$(this).siblings('span').css({"display": "block"});
$(this).css({"border": 'solid 1px #E85131'});
$(this).css({"color":'#bbb'});
});
当我加载文档时,每个“选择器”类都会正确调用该函数。
有时我会更新一个div
function test()
{
document.getElementById("feed").innerHTML = "";
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
}
else { // code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function()
{
if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
{
document.getElementById("feed").innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open("POST", "load_feed.php, false);
xmlhttp.send();
}
加载了一些带有“选择器”类的新 div,但它们不会在模糊或更改时调用 jQuery 代码。
已经加载的仍然有效。
你们知道为什么吗?
最佳答案
因为这就是 bind() 的工作方式,所以您需要使用 on()反而。它允许委托(delegate)事件绑定(bind),而 bind() 仅适用于调用时出现的事件。所以这就是你需要做的:
$(document).on("change blur", ".selector", function(){
...
}
关于javascript - jQuery,未从加载有 ".innerHTML()"的 HTML 组件调用的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26445112/