$(document).ready(function() {
$('a#fav').bind('click', addFav(<?php echo $showUP["uID"]; ?>));
});
之前是
$(document).ready(function() {
$('a#fav').bind('click', addFav);
});
我添加了(<?php echo $showUP["uID"]; ?>)
因为我希望用户个人资料的ID可以在addFav ajax调用中使用。
所以我在我的页面底部有这个,现在即使我已经点击了#emp它运行了吗?但是当我没有(id)
时,它不会自行运行以下是继承人addFav:
function addFav(id){
$.ajax({
url: "misc/favAdd.php",
data: { id: id},
success: function(){
$('a#fav')
.addClass('active')
.attr('title','[-] Remove as favorite')
.unbind('click')
.bind('click', removeFav(id))
;
jGrowlTheme('wallPop', 'mono', '[+] Favorit', 'Du har nu lagt till denna profil som favorit', 'images/addFavorit_hover2.png', 1000);
}
});
}
function removeFav(id){
$.ajax({
url: "misc/favRemove.php",
data: { id: id },
success: function(){
$('a#fav')
.removeClass('active')
.attr('title','[+] Add as favorite')
.unbind('click')
.bind('click', addFav(id))
;
jGrowlTheme('wallPop', 'mono', '[-] Favorit', 'Du har nu tagit bort denna profil som favorit', 'images/addFavorit_hover2.png', 1000);
}
});
}
答案 0 :(得分:6)
bind
函数的第二个参数是函数本身。将函数作为参数传递时,只能提供函数名称,而不能提供左/右括号或参数。
在您的情况下,如果您想将参数传递给addFav
函数,您可以通过将匿名函数传递给bind
来实现,并且在该函数的主体内,调用{正如您通常使用参数一样{1}}。像这样:
addFav
答案 1 :(得分:4)
你需要一个像onload这样的令人生气的功能:
$(function() {
$('a#fav').click(function(
addFav(<?php echo $showUP["uID"]; ?>)
});
});
这种风格在success
回调中:
$('#fav').click(function() {
addFav(id);
});
因为#fav
应该是一个唯一的ID,所以它是一个更快的选择器。
或者,将其作为数据参数传递给.bind()
,如下所示:
$('a#fav').bind('click', { id: id }, addFav);
在你的函数中以那种方式访问它而不是像参数一样:
function addFav(e){
var id = e.data.id;