.live()jQuery - 如何更改我的事件

时间:2012-12-20 19:38:48

标签: jquery jquery-on

如何将这些事件更改为.live()事件处理程序?

我以为我可以将$(document).ready(function()...改为.... $(document).live(function()以及.keydown和.data更改为.live但是我似乎无法让它工作......请帮助。

$(document).ready(function(){
                $('#number').bind('keyup change focus', function(){
                        var field = this;
                        timer = setTimeout(function(){runSearch(field);}, 444);});                      
                $('#number').keydown(function(){clearTimeout(timer);});                 
                //url selection by specifics                
            $('#phone_book tr').data('bgcolor', '#aaf').hover(function(){
                 var $this = $(this);
                 var newBgc = $(this).data('bgcolor');
            $(this).data('bgcolor', $(this).css('background-color')).css('background-color', newBgc);
                 });  
                //url selection by specifics  
                $("#phone_book tr").click(function(){
                        var id = $(this).children().first().html();
                        var type = $(this).parents('table').siblings('div.module_header').html().toLowerCase();

3 个答案:

答案 0 :(得分:6)

变化

.bind(...

.on(...

.live()实际上已被弃用。

对于像.keyup(),. keydown()这样的人,将其更改为.on('keydown'......等等。

答案 1 :(得分:1)

将.bind()更改为.live()

请记住,在较新版本的jQuery中不推荐使用live(),而应使用on()。您的某些事件可能还需要较旧的delegate()方法。

$('#number').live('keyup change focus', function(){
    var field = this;
    timer = setTimeout(function(){runSearch(field);}, 444);});                      
    $('body').delegate('#number', 'keydown', function(){clearTimeout(timer);});                 
        //url selection by specifics                
        $('body').data('bgcolor', '#aaf').delegate('#phone_book tr', 'hover, function(){
            var $this = $(this);
            var newBgc = $(this).data('bgcolor');
            $(this).data('bgcolor', $(this).css('background-color')).css('background-color', newBgc);
    });  

答案 2 :(得分:1)

以下是使用.on函数的代码示例。

$(document).ready(function(){
      $('#number').on('keyup change focus', function(){
             var field = this;
             timer = setTimeout(function(){runSearch(field);}, 444);});                      
            $('#number').keydown(function(){clearTimeout(timer);});                 
                //url selection by specifics

            $('#phone_book tr').data('bgcolor', '#aaf').hover(function(){
                    var newBgc = $(this).data('bgcolor');
                    $(this).data('bgcolor', $(this).css('background-color')).css('background-color', newBgc);});  
                //url selection by specifics  
            $("#phone_book tr").on('click', function(){
                     var id = $(this).children().first().html();
                     var type = $(this).parents('table').siblings('div.module_header').html().toLowerCase();