我一直在使用以下方法将点击事件添加到一个 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/