Javascript jQuery错误:递归太多

Javascript jQuery错误:递归太多,javascript,jquery,jquery-plugins,watermark,Javascript,Jquery,Jquery Plugins,Watermark,我将此用于jQuery。它在每一页上都能正常工作,除了我的注册,它被调用了4次。在注册页面上,我在jQuery的第57行发现了一个太多的递归错误(一个托管在Google上)。我不认为jQuery是问题所在,尽管我认为这与我的代码或插件有关。你能看看有没有看到什么吗 代码: $(文档).ready(函数(){ $(“.text”).addClass(“idleField”); $(“.text”).focus(函数(){ $(this.removeClass(“idleField”); $(thi

我将此用于jQuery。它在每一页上都能正常工作,除了我的注册,它被调用了4次。在注册页面上,我在jQuery的第57行发现了一个太多的递归错误(一个托管在Google上)。我不认为jQuery是问题所在,尽管我认为这与我的代码或插件有关。你能看看有没有看到什么吗

代码:

$(文档).ready(函数(){
$(“.text”).addClass(“idleField”);
$(“.text”).focus(函数(){
$(this.removeClass(“idleField”);
$(this.addClass(“focusField”);
});
$(“.text”).blur(函数(){
$(this.removeClass(“focusField”);
$(此).addClass(“idleField”);
});
$(“#rescaptcha_response_field”).attr(“tabindex”,“5”);
$(“#用户名”)。水印(“所需用户名”);
$(“#密码”)。水印(“6到12个字符之间的密码”);
$(“确认密码”)。水印(“确认密码”);
$(“#电子邮件”).水印(“请插入有效电子邮件”);
$(“#检查用户”)。单击(函数(){
$(“#结果”).html(“加载…”);
var user=$(“#用户名”).attr(“值”);
$.get(“library/regUserCheck.php”,{name:user},函数(数据){
$(“#结果”).html(数据);
});
});
$(“#errorField”)。延迟(5000)。淡出(1250);
});

代码中的递归太多,这对您来说不意味着什么吗?以下是改进后的代码:

$(function() {
    $(".text").addClass("idleField").focus(function () {
        $(this).removeClass("idleField").addClass("focusField");
    }).blur(function () {
        $(this).removeClass("focusField").addClass("idleField");
    });

    $("#recaptcha_response_field").attr("tabindex", "5");
    /*@cc_on
    var $username = $("#username");
    $username.watermark("Desired Username");
    $("#password").watermark("Password between 6 and 12 characters");
    $("#confirmPassword").watermark("Confirm Password");
    $("#email").watermark("Please insert a valid email");
    */
    $("#checkUser").click(function () {
        $("#results").html("<img src='images/loading.gif' alt='loading...' />loading...").load("library/regUserCheck.php", {
            name: $username.val()
        });
    });
    <?php if ($error) { /* Make error fade out */ ?>
        setTimeout(function () {
            $("#errorField").fadeOut(1250);
        }, 5000);
    <?php } ?>
});
如果不能这样做,将其缓存到变量中。例如:

var $el = $('#el');
$el.html('loading…');
setTimeout(function() {
    $el.load('/ajax/echo/html', {html: 'Hello, world!'});
}, 5000);
例如,如果要为元素指定更多CSS规则,这是最好的语法:

$('#el').css({
    'background-color': 'blue',
    color: 'white'
});
  • 这实际上取决于样式,并不重要,但您可以使用
    $(function(){
    作为
    $(document).ready(function(){
    的缩写

我希望这足够了。

如果问题是多次调用
水印
,我会尝试使用计时器:

$("#username").watermark("Desired Username");
window.setTimeout(function() { $("#password").watermark("Password between 6 and 12 characters"); }, 100);
window.setTimeout(function() { $("#confirmPassword").watermark("Confirm Password"); }, 200);
window.setTimeout(function() { $("#email").watermark("Please insert a valid email"); }, 300);

你用的是什么版本的JQuery?你用的是Google JQuery CDN的什么链接?1.4.4@jeffan24你能换成非缩略的一行,看看错误发生在哪一行吗?把所有的行注释掉,一次取消注释,看看它什么时候吐。@lonesomeday太多的递归行1891我认为递归意味着它变得死气沉沉的但是谢谢你的其他东西,我真的很感激,如果有用的话我会告诉你的。
$('#el').css({
    'background-color': 'blue',
    color: 'white'
});
$("#username").watermark("Desired Username");
window.setTimeout(function() { $("#password").watermark("Password between 6 and 12 characters"); }, 100);
window.setTimeout(function() { $("#confirmPassword").watermark("Confirm Password"); }, 200);
window.setTimeout(function() { $("#email").watermark("Please insert a valid email"); }, 300);