1

如何通过 jQuery 获取被点击元素的 ID,然后将其作为参数传递给函数?下面的示例 jQuery 代码。

jQuery(document).ready(function() {
    var id = this_id;
    jQuery(".lightbox a").click({param: id}, functionName);
});

请注意,“param”参数是函数结构的组成部分。

抱歉,无论如何我都不是 Javascript 大师。

4

10 回答 10

5

在点击处理程序中,您可以使用this.id或访问元素 ID $(this).attr('id')

jQuery(document).ready(function() {
    jQuery(".lightbox a").click(function(){
        functionName(this.id);
    });
});
于 2013-06-18T15:54:11.603 回答
5

我猜重点是将事件数据传递给一个期望 asclick()支持.click( [eventData ], handler(eventObject) )语法的函数,如果是这样,您必须自己迭代集合:

jQuery(document).ready(function($) {
    $(".lightbox a").each(function() {
        $(this).click({param: this.id}, functionName);
    });
});

编辑:

你也可以这样做on()

jQuery(document).ready(function($) {
    $(".lightbox a").each(function() {
        $(this).on('click', {param: this.id}, functionName);
    });
});

小提琴

于 2013-06-18T16:00:36.697 回答
3

您可以this.id在点击事件中使用,例如:

jQuery(".lightbox a").click(function() {
    var id = this.id;

    //pass to a function
    testFunction(id);
});

function testFunction(param) {
    console.log(param);
}
于 2013-06-18T15:53:22.067 回答
3

很容易访问this元素以获取单击的元素,然后提取其id并将其保存到如下变量中:

jQuery(".lightbox a").click(function(){
  var id = jQuery(this).attr("id");
  callFunction(id);
});
于 2013-06-18T15:54:04.540 回答
3

http://jsfiddle.net/pArW6/

jQuery(document).ready(function() {
   jQuery(".lightbox a").click(functionName);
});

function functionName()
{ 
  alert(this.id);   
}
于 2013-06-18T15:55:40.940 回答
2

您可以使用this.idor $(this).attr("id");,但如果您在其中执行许多其他操作,您可能希望立即获取对$(this)- 是否已包装的引用并从变量中工作。

于 2013-06-18T15:53:24.793 回答
2

你可以使用$(this).att("id").

$(".lightbox a").click(function() {
    var ID=$(this).att("id");

    //pass to a function
    TestFunction(ID);
});

function TestFunction(P) {
    console.log(P);
}

活生生的例子

http://jsbin.com/enobop/1/edit

于 2013-06-18T15:55:04.570 回答
2

你可以这样做:

jQuery(document).ready(function () {
    jQuery(".lightbox a").click(function (e) {

        // Cancel the default action (navigation) of the click.
        e.preventDefault();

        // 'this' here refers to the link being clicked in the current scope
        // you can check the console for the id for debug purpose
        console.log(this.id);

        // pass the id to the function
        functionName(this.id);
    });
});
于 2013-06-18T15:55:58.613 回答
2

另一种方法是使用传递给回调函数的事件参数。

jQuery(".lightbox a").click(function(ev) {
    console.log(ev.target.id);
}

当然,它是 jQuery 和纯 JS 的混合体。

于 2013-06-18T15:57:48.150 回答
2

通常你有一个用 function(event) 声明的事件的函数,并且该事件有一个目标,目标的 id 就是你想要的。所以

$("SomeElement").on("click", function(e){ callanotherFunction(e.target.id) })

做,你想要什么

于 2013-06-18T15:58:24.237 回答