无法传递id来点击功能

时间:2012-12-31 11:52:08

标签: jquery function

我真的很想在函数中传递一个参数,以便在我的ajax帖子页面中使用。

这是我的fancybox脚本,偶数显示正常。

var fancyContent = ('<div class="header">approve booking for event id'  + eventid + '<a href="#" class="approve" id="' + eventid + '">yes</a><a href="#" class="approve">no</a></div>');
$.fancybox({
    content: fancyContent
        });    

从点击链接中获取活动ID

var getid = $('.approve').attr('id');

此处的提醒显示ID

alert(getid);

然后我开始点击功能将getid作为参数传递

$('.approve').click(function(calEvent, jsEvent, view, getid){

我的警告总是未定义,有什么想法吗?

alert(getid);

3 个答案:

答案 0 :(得分:4)

要获取所点击项目的ID,您可以尝试这样做:

$('.approve').click(function() {
    var id = $(this).attr('id');
});

答案 1 :(得分:3)

如果要将数据传递给事件处理程序,可以使用trigger方法:

来自jQuery docs

$("p").click( function (event, a, b) {
    // when a normal click fires, a and b are undefined
    // for a trigger like below a refers to "foo" and b refers to "bar"
}).trigger("click", ["foo", "bar"]);

$('.approve').trigger('click', [jsEvent, view, 'id'])

答案 2 :(得分:1)

用你的行

$('.approve').click(function(calEvent, jsEvent, view, getid){

正在创建新功能。你定义这个函数的参数,就像在任何函数声明中一样,这里的变量名称(如calEventviewgetid)是本地的。所以你在这里使用相同的名称,并不意味着jQuery会将相同的变量传递给函数。换句话说:当您使用getid 这个新函数时,它与函数外部的函数完全不同getid

因此,为了获取您的ID,您需要重新分配它并再次执行与在函数外部相同的技巧。