$(“#input”)。keyup在$(document).keyup的地方不起作用

时间:2013-11-15 18:18:56

标签: jquery

在Chrome 30.0.1599.101和IE 11中,输入选择器无法在Firefox 25.0.1中正常运行

在Chrome / IE中损坏:

$(document).ready(function () {
    $("#input").keyup(function (e) {
        var dataString = $(this).val();
        console.log(dataString);
    });
});

在Chrome / IE中工作:

$(document).ready(function () {
    $(document).keyup(function (e) {
        var dataString = $("#input").val();
        console.log(dataString);
    });
});

然而,这个小提琴适用于所有浏览器...... http://jsfiddle.net/f82Dz/1/

由于

1 个答案:

答案 0 :(得分:3)

这样可以解决吗?如果在首次加载页面后动态添加input,则需要委派事件:

$(document).ready(function () {
    $(document).on('keyup', '#input', function (e) {
        var dataString = $("#input").val();
        console.log(dataString);
    });
});

<强> Updated JSFiddle

事件处理程序仅绑定到绑定事件时存在的DOM元素 - 在本例中为$(document).ready()。如果您的input当时不存在,并且稍后使用AJAX或其他方法添加,则需要使用事件委派,如本例所示。

如果这不起作用,则需要提供更多上下文/信息。