Слишком много рекурсии в вашем коде, разве это ничего не значит для вас? Вот улучшенный код:
$(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 } ?>
});
Советы:
- Вы можете использовать условные комментарии (
/*@cc_on … */
) для обработки IE, нет необходимости делать это с PHP.
- Никогда не используйте селектор jQuery несколько раз. jQuery должен найти этот элемент в DOM несколько раз. В большинстве случаев вы можете использовать цепочка , например:
$('#el').click(function() {
…
}).addClass('myClass');
Если вы не можете этого сделать, кэшируйте в переменную. Пример:
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() {
.
Надеюсь, этого достаточно. :)