1

我真的很难在函数中传递参数以在我的 ajax 帖子页面中使用。

这是我的fancybox 脚本,eventid 显示良好。

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);

然后我开始我的 click 函数,将 getid 作为参数传递

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

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

alert(getid);
4

3 回答 3

4

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

$('.approve').click(function() {
    var id = $(this).attr('id');
});
于 2012-12-31T11:54:38.010 回答
3

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

来自 jQuery文档

$("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'])
于 2012-12-31T11:59:29.943 回答
1

用你的线

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

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

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

于 2012-12-31T11:57:49.050 回答