我正在尝试自动检测单击的div,然后添加特定div的文本。
所以,这就是我要做的事情:
$('#sjalland').live("click", function(e) {
e.preventDefault();
$('#searchBoxBig').val('Sjælland, ');
$('#searchBoxBig').focus()
return false;
});
现在,我有6个div,点击时必须激活此功能(如#sjalland)。但是现在看起来我必须创建6个相同的功能?
如何创建智能的东西来检测单击哪个div,而不是创建6个相同的函数,然后将#sjalland替换为#midjjylland,#nordjylland等等?
答案 0 :(得分:2)
为你的div提供相同的类,并使用classname作为选择器而不是id。 e.g。
$(".someclassname").live("click", function() {
$('#searchBoxBig').val($(this).attr("id")).focus();
});
或者,将点击回调应用于包含div并使用event.target
检测单击了哪个内部div(使用event.stopPropagation()
以防止事件冒泡到父div。)
答案 1 :(得分:2)
在操作中,您可以使用$(this)来检查特定点击的项目。
示例:
$("div.myDivs").click(
function(){
var id = $(this).attr("id"); //Id of the object
}
);
答案 2 :(得分:0)
使用e.target
获取点击的元素(即,如果您绑定到父级并想知道点击了哪个孩子)。
使用this
获取处理程序绑定的元素。