jquery:bind onclick

Kar*_*rem 1 jquery bind onclick

    $(document).ready(function() {    
    $('a#fav').bind('click', addFav(<?php echo $showUP["uID"]; ?>));
});
Run Code Online (Sandbox Code Playgroud)

以前

    $(document).ready(function() {    
    $('a#fav').bind('click', addFav);
});
Run Code Online (Sandbox Code Playgroud)

我添加了(<?php echo $showUP["uID"]; ?>)因为我想在addFav ajax调用中使用用户配置文件的id.

所以我在我的页面底部有这个,现在即使我已经点击了#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);
      }
    });
}
Run Code Online (Sandbox Code Playgroud)

wsa*_*lle 6

bind函数的第二个参数是函数本身.将函数作为参数传递时,只能提供函数名称,而不能提供左/右括号或参数.

在您的情况下,如果您想将参数传递给addFav函数,您可以通过将匿名函数传递给函数bind体,并在函数体内调用,addFav就像通常使用参数一样.像这样:

$(document).ready(function() {    
    $('a#fav').bind('click', function() {
        addFav(<?php echo $showUP["uID"]; ?>);
    });
});
Run Code Online (Sandbox Code Playgroud)