在我的click()函数中传递一个值

时间:2012-08-16 15:56:15

标签: jquery click

我有这段代码,

<a href="#" id="addtoteam">
    Add to Team
</a>

,如果我点击此链接,将出现一个模态对话框,

$('#addtoteam').click(function(){
      var url = '<?php echo BASEURL;?>';
      $( "#dialogbox" ).dialog({ 
        autoOpen: true,
        buttons: { 
                  "Use Registration Credits": function(){ 
                    // execute something here before redirecting it to another page, perhaps perform the updating of the registration_credits of each team here
                    window.location = url + '/administration/add_to_team/' + teamID +'/'+ playerID +'/?credit=1'; 
                  },
                  "Pay Extra Charge": function() { $(this).dialog("close"); },
                  "Cancel": function() { $(this).dialog("close"); } 
                },
        width: 800
      });
    });

正如你所看到我有三个按钮,看看“使用注册积分”按钮,如果它被选中,它将重定向到另一个页面,但我想要的是如果它重定向到其他页面,我想要让网址看起来像这样,

sample.com/administration/add_to_team/team_id/player_id?credit=1

现在我的问题是,是否可以传递任何可以分配给我click()函数内的变量的值,以便该值可以是我的team_id或玩家ID?我希望我能解释清楚。感谢。

3 个答案:

答案 0 :(得分:2)

您可以将元素中的参数(如team_id或玩家ID)存储为属性:

<a href="#" id="addtoteam" data-team-id="4" data-player-id="5" >
    Add to Team
</a>

然后你得到这些:

team_id = $(this).attr('data-team-id');

希望它可以帮到你

答案 1 :(得分:0)

您可以使用选择器从页面上的任意位置获取数据,如果您特别想从“点击”链接中获取数据,则可以在点击事件的上下文中使用this

$('#addToTeam').on('click', function()
{
    var clicked = $(this);

    // Get the clicked links HREF value
    var href = clicked.attr('href');

    // Get the clicked links NAME value
    var name = clicked.attr('name');

    // And so on
    var data = clicked.attr('data-value')

});

要完全回答您的问题,您需要在<a>标记中添加更多数据。对于简单的东西,比如ID等,我只是把它们放在HREF值中,然后使用上面的技术将它拉到点击的链接上。然后,您可以将该值附加到查询字符串。

$('#addtoteam').click(function()
{
    id = $(this).attr('href');

    window.location = url + '/administration/add_to_team/' + id

});

作为一个例子

答案 2 :(得分:0)

如果您尝试更改以下网址:

sample.com/administration/add_to_team/team_id/player_id

到:

sample.com/administration/add_to_team/team_id/player_id?credit=1

所有你缺少的是查询字符串,你只需添加它:

document.location.search = '?credit=1';