2012-03-10 75 views
0
var refreshId = setInterval(function() { 
    $('#livelist').load('/scripts/livelist.php', { guestlist:'<?php echo $_GET['guestlist']; ?>'}); 
}, 5000); 
$.ajaxSetup({ cache: false }); 

我知道我需要附加.live()事件处理函数来防止触发其他事件(当前正在发生的事件),但我在哪里添加它?JQuery - 在哪里添加.on()/。live()函数?

完整的脚本:

$(document).ready(function() { 

$("input#name").select().focus(); 

$('#livelist').load('/scripts/livelist.php', { guestlist:'<?php echo $_GET['guestlist']; ?>'}); 

var refreshId = setInterval(function() { 
    $('#livelist').load('/scripts/livelist.php', { guestlist:'<?php echo $_GET['guestlist']; ?>'}); 
}, 5000); 
$.ajaxSetup({ cache: false }); 

$("input#name").swearFilter({words:'bob, dan', mask:"!", sensor:"normal"}); 

var tagCheckRE = new RegExp("(\\w+)(\\s+)(\\w+)"); 

jQuery.validator.addMethod("tagcheck", function(value, element) { 
    return tagCheckRE.test(value); 
}, ""); 

$("#addname").validate({ 
    invalidHandler: function(form, validator) { 
     var errors = validator.numberOfInvalids(); 
     if (errors) { 
     $('#naughty').fadeIn('fast'); 
     $('#naughty').delay('1000').fadeOut('fast'); 
     } else { 
     $('#naughty').hide(); 
     } 
    } 
}); 

$('#showall').live('click', function() { 
    $('#showall').hide(); 
    $('div#shownames').slideDown('fast'); 
}); 

jQuery(document).ajaxStart(function(){ 
    $("input#name").blur(); 
    $('#working').show(); 
    $('#event-box').fadeTo('fast', 0.5); 
}) 

var names = ''; 
var dot = '.'; 

$('#addname').ajaxForm(function() { 

    var options = { 

      success: function(html) { 
        /* $("#showdata").replaceWith($('#showdata', $(html))) */ 
        var value = $("input#name").val().toUpperCase();; 
        $("span.success").text(value); 
        if (names == '') { 
         names = value; 
        } 
        else { 
         names = ' ' + value + ', ' + names; 
         $("span#dot").text(dot); 
        } 
        $("span#name1").text(names); 
        $('#working').fadeOut('fast'); 
        $('#success').fadeIn('fast'); 
        $('#added-names').fadeIn('fast'); 
        $('#success').delay('600').fadeOut('fast'); 
        $("input#name").delay('1200').select().focus(); 
        $('#event-box').delay('600').fadeTo('fast', 1.0); 
        $(':input','#addname') 
         .not(':button, :submit, :reset, :hidden') 
         .val('') 
      }, 
      cache: true, 
      error: function(x, t, m) { 
       if(t==="timeout") { 
        $('#working').fadeOut('fast'); 
        $('#fail').fadeIn('fast'); 
        $('#fail').delay('600').fadeOut('fast'); 
       } else { 
        $('#working').fadeOut('fast'); 
        $('#fail').fadeIn('fast'); 
        $('#fail').delay('600').fadeOut('fast'); 
        alert(t); 
       } 
      } 
    } 

    $(this).ajaxSubmit(options); 
    $('body').select().focus(); 
}); 

    $("input").bind("keydown", function(event) { 
     var keycode = (event.keyCode ? event.keyCode : (event.which ? event.which : event.charCode)); 
     if (keycode == 13) { 
      document.getElementById('#submit').click(); 
      return false; 
     } else { 
     return true; 
     } 
    }); 

}); 

的给ajaxForm功能正在使用我目前的执行触发。

+0

你能更精确地描述你的问题吗?还有哪些活动?您的代码中没有事件处理程序,因此我不清楚'.live()'是如何帮助您的;但是因为我不知道你看到了什么不想要的行为,所以如果你包括这些,也许会很明显。 – 2012-03-10 23:38:53

+1

我想你可能会误解这里的某些事情......你想阻止什么事件处理程序被触发? – Niko 2012-03-10 23:39:26

+0

不要将它添加到任何地方,它已被弃用;使用'.on()'。 – mowwwalker 2012-03-10 23:42:25

回答

0

故障:

jQuery(document).ajaxStart(function(){ 
    $("input#name").blur(); 
    $('#working').show(); 
    $('#event-box').fadeTo('fast', 0.5); 
}) 

由于.ajaxStart()是一个全球性的参数,每一个AJAX调用期间它被触发,包括​​,我很惊讶,没有人发现它。