[英]jQuery detect which id is clicked
我需要在准备好文档以及单击按钮时启动功能。 如果单击了按钮,则需要检测单击了哪个ID。
要开始我做的功能
process_add_to_chart();// this is for document ready
$( '[id^="button_add_to_cart_"]' ).click(function(){
process_add_to_chart();
});
然后
function process_add_to_chart(){ }
函数启动,但是如何获取id的attr?
var id = $(this).attr('id');
不起作用。 获取未定义
啊,对不起,似乎必须在其中定义全局ID
$( '[id^="button_add_to_cart_"]' ).click(function(){ });
因为你叫process_add_to_char
真正的处理程序中( function () { ... })
你就失去了原有的this
“上下文”(点击的元素),而this
是现在的window
对象。
因此,您需要像这样绑定处理程序:
$( '[id^="button_add_to_cart_"]' ).click(process_add_to_chart);
然后, this
将是被单击的元素。
另一种方法是使用call
方法将this
参数传递给内部函数,如下所示:
$( '[id^="button_add_to_cart_"]' ).click(function(){
process_add_to_chart.call(this);
});
进一步阅读: JavaScript-this关键字
$('[id^="button_add_to_cart_"]').click(function(){
process_add_to_chart(this);
});
function process_add_to_chart(obj){
if(obj != null){
var id = $(obj).attr('id');
}
}
将单击的元素对象引用传递给您的函数。
演示:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.