javascript - jQuery,未从加载有 ".innerHTML()"的 HTML 组件调用的函数

标签 javascript jquery html class

我有一些可用的 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/

相关文章:

javascript - 使用 jQuery,通过 id 选择一个 Div,从下拉列表中选择并将其绘制在另一个 Div 中

css - 在 div 中显示图标的问题,对齐

javascript - jQuery/JS无限定时循环

javascript - 如何模拟水平滚动的固定定位但保持正常的垂直滚动? (表格的粘性列)

jquery - 制作jquery tmpl,无需大量额外的脚本标签

javascript - ajax成功后window.location.href不工作

html - 对齐响应线

javascript - 尝试将提示中的输入用作函数中的对象值

javascript - 在选择时为单选按钮分配唯一的 ID

javascript - 为 html css 实现网格和标尺