jquery函数

帮我解释一下.... 2为什么实现不了....

<script src="jquery.js"></script>
<script>

$(document).ready(function(){

//---->1

$('.test').click(function(){
alert("thank you");
$(this).hover(add_class,remove_class);
});

//---->2

$('.test').click(function(){
alert("thank you");
}).hover(add_class,remove_class);

var add_class=function(){
$(this).addClass('hover');
};

var remove_class=function(){
$(this).removeClass('hover');
};
});

</script>
<style>

.test{
border:1px solid #ccc;
padding:4px;
font-family:Arial, Helvetica, sans-serif;
font-weight:bold;
cursor:pointer;
float:left;
}

.hover{
background:#ff0099;
color:#fff;
}
</style>
</head>

<body>
<div class="test">click me</div>
</body>
看好了哦...我没有写在click里面...我举另一个例子看下..也就是说..hover不利用匿名函数去执行的时候...会提示第2个参数函数不存在...

$('#test').hover(add_class,remove_class);

这种情况也是没有用的....

当hover想要调用函数名的时候..必须写在其他行为里面...执行$(this).hover这样才可以...比如..:
$('.test').click(function(){
alert(111);
$(this).hover(add_class,remove_class);
});

这样hover才有用...

比如....利用迭代的方法也是不可用的..比如:

$('.test').each(function(){
$(this).hover(add_class,remove_class);
});
这样也是不可用的...
===============================================================
看这2个语句..
//--->1
$('.test').hover(add_class,remove_class);

//---->2
$('.test').click(function(){
$('.test').hover(add_class,remove_class);
});

var add_class=function(){
$(this).addClass('hover');
};

var remove_class=function(){
$(this).removeClass('hover');
};

1跟2调用函数后$(this)应该都指向它本身的对象..;为什么1错误呢
jquery提供的hover方法只能被jquery对象调用,你写在function结尾当然点不到那个方法

而且鼠标悬停更棚猜改样式的方法和click方法是独立的,不应该写到亮培click中,整体帮你改了一链键型下

$(function(){
$('.test').click(function(){
alert("thank you");
});
});

$(function(){
$(".test").hover(function(){
$(this).addClass("hover");
},
function(){
$(this).removeClass("hover");
});
});

你第2种不可用的原因是调用hover的不是一个jquery对象
函数用绝念 var 定义的时候,应该写在前面。

var add_class=function(){
$(this).addClass('hover');
};

var remove_class=function(){
$(this).removeClass('hover');
};
$('.test'并租困).click(function(){
alert("thank you");
}).hover(add_class, remove_class);

这样就可以。

另外的方型码法就是不用 var 定义函数。

function add_class() {
}

function remove_class() {
}

这样写在后面也能正确执行。
var add_class=function(){
$(this).addClass('hover');
};

var remove_class=function(){
$(this).removeClass('hover');
};
$('.test').click(function(){
alert("thank you");
}).hover(add_class, remove_class);
【补充凯镇】:

jquery函数大全

Attribute:
$(”p”).addClass(css中定义的样式类型;); 给某个元素添加样式
$(”img”).attr({src:”test.jpg”,alt:”test Image”}); 给某个元素添加属性/值,参数是
map
$(”img”).attr(”src”,”test.jpg”); 给某个元素添加属性/值
$(”img”).attr(”title”, function() { return this.src }); 给某个元素添加属性/值
$(”元素名称”).html(); 获得该元素内的内容(元素,文本等)
$(”元素名称”).html(”<b>new stuff</b>”); 给某元素设置内容
$(”元素名称”).removeAttr(”属性名称”) 给某元素删除指定的属性以及该属性的值
$(”元素名称”).removeClass(”class”) 给某元素删除指定的样式
$(”元素名称”).text(); 获得该元素的文本
$(”元素名称”).text(value); 设置该元素的文本值为value
$(”元素名称”).toggleClass(class) 当元素存在参数中的样式的时候取消,如果不存在就设置此样式
$(”input元素名祥毁称”).val(); 获取input元素谨孙备的值
$(”input元素名称”).val(value); 设置input元素的值为value Manipulation:
$(”元素名称”).after(content); 在匹配元素后面添加内容