live()不使用更改功能

时间:2013-08-23 05:59:31

标签: jquery

你好朋友关注的是我的代码

SCRIPT

$(document).ready(function(e) {
    $('.text').live('change',function(){
        var a = $(this).val();
        alert(a);
        })
});

HTML

<input name="" type="text" class="text"/>

我是jQuery的新手我想要获取输入值的变化 该值一次又一次地动态变化

请帮帮我们

5 个答案:

答案 0 :(得分:10)

  

从jQuery 1.7开始,不推荐使用.live()方法。

您应该使用on()

$(document).ready(function(e) {
    $('.text').on('change',function(){
        var a = $(this).val();
        alert(a);
        });
});

答案 1 :(得分:2)

对于文本框,请使用input代替change

$('.text').live('input',function(){
        var a = $(this).val();
        alert(a);
        })
});

检查此SO answer有关输入更改事件的信息。

  

BTW:您应该考虑迁移到最新版本的jQuery并将.live()替换为.on()

答案 2 :(得分:1)

.live()方法自jQuery 1.7以来已被弃用,并已在1.9 中删除。我们建议升级代码以改为使用.on()方法。 jQuery Core 1.9 Upgrade Guide

$(document).ready(function(e) {
    $('.text').on('change',function(){
        var a = $(this).val();
        alert(a);
        })
});

答案 3 :(得分:0)

您可以使用 点击

$(document).ready(function(e) {
    $('.text').click('change',function(){
        var a = $(this).val();
        alert(a);
        })
});

答案 4 :(得分:0)

{功能:“ ON() ”}} {事件:“ 输入 ”}} { 所有表单字段 HTML5 “内容可编辑” }

正如其他用户指出的,live()函数早已过时,但是我想指出使用on()函数获得与live()相同的效果的真正方法,并帮助StackOverflow用户获得更好的效果误导性名称“ 输入 jQuery documentation

区别在于live()将针对sort的所有元素,而on()/ bind()仅针对当前受影响的元素,这使其更加高效,轻便和快捷。

正确的解决方案不是 只是 on()或bind(),正如其他人指出的那样。 仅使用on()事件将“冒泡”,直到将焦点移到元素上才会触发。诀窍是使用“ 输入 ”作为速记事件,同时将紧随其后的元素作为目标。 好消息是,相同的“ input ”事件不仅适用于所有表单字段,而且适用于html“ contenteditable”内容;)

完整示例在下面的代码段中。

jQuery(document).ready(function(e) {
    $('body').on('input','.text',function(){
        var a = $(this).val();
        alert(a);
    });
});
.text{
   display:block;
   width:50%;
   height:25px;
   margin:0;
   border:1px soid silver;
   background:silver;
   line-height:25px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<input name="" type="text" class="text" placeholder="Type e.g. 123"/>
<hr>
<select name="select" class="text">
   <option>1</option>
   <option>2</option>
</select>
<hr>
<textarea class="text"  placeholder="Type e.g. 123"></textarea>
<hr>
<div contenteditable="true" class="text">Type e.g. 123</div>