首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除文本时IE中的jQuery .live(‘.live)

删除文本时IE中的jQuery .live(‘.live)
EN

Stack Overflow用户
提问于 2012-05-28 08:14:33
回答 3查看 3K关注 0票数 2

基于这个问题基于计数器值的淡出文本

我有以下标记:-

代码语言:javascript
复制
<textarea id="TextBox1"></textarea>
<br/>
<span id="validator" style="display:none"></span>

和以下jQuery:

代码语言:javascript
复制
jQuery('#TextBox1').live('input', function() {

    var charLength = $(this).val().length;

    $('#validator').html(charLength + ' of 250 characters used');
    $('#validator').fadeInOrOut(!! charLength);

    if ($(this).val().length > 250) {
        $('#validator').html('<strong>You may only have up to 250 characters !</strong>');
    }

});

jQuery.fn.fadeInOrOut = function(status) {
    return status ? this.fadeIn() : this.fadeOut();
}; 

在Firefox中,这一切都很好,但是在IE中,特别是当从textarea删除文本时,.live()事件似乎不会被触发。

这里有一个小提琴演示了上面的内容,如果您在Firefox功能中加载得很好,在IE中加载并向textarea添加一些文本,然后使用backspace键删除一些文本。

例外/CsXU8 8/

使用on编辑似乎起到了很大的作用,这个bug仍然存在。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-05-28 08:19:52

根据您的jQuery版本,使用.on()而不是.live(),而不是绑定到input,只需使用keyup捕捉事件

代码语言:javascript
复制
jQuery('#TextBox1').on('keyup', function() { });
票数 3
EN

Stack Overflow用户

发布于 2012-05-28 08:22:58

您可以使用keyup事件而不是一般不受支持的input。此外,您还可以使用on而不是不推荐的live

代码语言:javascript
复制
jQuery(document).on('keyup', '#TextBox1', function() {
    ...
});

演示: http://jsfiddle.net/CsXU8/10/

票数 1
EN

Stack Overflow用户

发布于 2012-05-28 08:20:12

对于IE8/9,使用以下代码替换第一行

jQuery('#TextBox1').on('keyup', function() {

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10781384

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档