javascript - 如何将点击处理程序添加到类中并找出点击了哪个元素?

标签 javascript jquery

我一直在使用以下方法将点击事件添加到一个 id,我想知道我是否可以对一个类做同样的事情......我有很多项目(它们是在 for each 循环中创建的) 并且我需要能够单击它们然后拾取被单击的...这是我现有的代码

$('submit-button').bind('click', submit_click);


function submit_click() {
    alert('I am clicked');
}

我想知道是否有某种方法可以将变量传递到我的点击函数中,以便我可以检查 ID?或类似的

因此

function submit_click(element) { // notice element
    alert(element + ' clicked');
}

非常感谢任何帮助

谢谢

编辑

我已经尝试了以下并且在调试中“elem”是未定义的...

$('.clear').bind('click', clear_click($(this)));

   function clear_click(elem) 
   {
        alert(elem.attr("id"));
   }

可行的解决方案

我有有效的解决方案,但我不完全明白为什么,我很想知道它为什么有效..

首先我尝试过

 $('.clear').bind('click', clear_click($(this)) );

这似乎工作“但是”当我加载页面时它进入“clear_click”方法而不被点击 - 奇怪......

然后我试了一下..

 $('.clear').bind('click', function() { clear_click($(this)) } );

这很好用!但我不明白为什么我必须传递一个函数,然后在这个函数中调用我的 clear_click。

谁能解释为什么 1 有效而另一个无效?

每当我需要调用回调函数或类似函数时,我应该先打开一个 function() 然后调用函数内部的方法吗?

最佳答案

$(".yourclass").click ( function() {
    $(this).attr ( "id" ); //S(this) returns the current element
});

你可以这样编码

$('.yourclass').bind('click', function() { submit_click($(this)) });

function submit_click(elem) 
{
    alert ( elem.attr ("id" ) );
}

编辑

   $('.clear').bind('click', function() { clear_click($(this)) });

   function clear_click(elem) 
   {
        alert(elem.attr("id"));
   }

这很适合你。

关于javascript - 如何将点击处理程序添加到类中并找出点击了哪个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1915007/

相关文章:

javascript - Tizen 平台的 Facebook 访问(使用 JS)

javascript - 如何从单独的日志文件检索数据

javascript - 适用于 Javascript 的 EMVCo TLV 字符串解析器库

jquery - 如何创建带有 taglib 前缀的 jquery 元素?

javascript - 如何从ajax加载数据到zabuto日历插件?

javascript - 通过 javascript 将 json 对象发送到 python Web 服务

javascript - 设置仅包含单个对象的 SC.DataSource

jquery - 你能解释一下这种奇怪的布局吗?

javascript - 设置值 jquery 在跟踪中工作,但在没有跟踪的情况下不起作用

javascript - “Access to restricted URI denied” 或 FileNotFound Angular 路由