我想为我的按钮使用实时单击功能,以便它可以在 Ajax 加载的 HTML 上运行,但后来我了解到 jQuery 的实时单击的新版本 -- $(".button").live("click", function() {...})
-- 是具有.on()
功能的版本。
由于在该语法中,元素在参数内,如果我的元素是“this”,我无法检索该元素。有什么办法可以找回吗?
$(".selection-item a").each(function(){
var parent_selection = $(this).parents(".selection-item-wrapper");
// $(this).click(function(){ //This is the original function which works fine EXCEPT on Ajax Loaded HTML
$(parent_selection).on("click",this,function(){
$(".selection-item a",parent_selection).removeClass("active");
$(this).addClass("active"); //This does not target my desired element which is $(".selection-item a")'s this
console.log( $(this) ); // The "this" value returns the parent_selection, I want it to return the particular "this" of $(".selection-item a") read from the .each() on top of my code
});
});
这是我的 HTML。我正在创建一个简单的项目选择。每当我单击图像的锚标记时,我将添加一个“活动”类以在其上添加带有边框的 CSS,以说明选择了特定项目。
<div class="selection-item-wrapper">
<div class="selection-item">
<a href="javascript:void(0);"><img src="img/image1.png"></a>
<h3>Item 1</h3>
</div>
<div class="selection-item">
<a href="javascript:void(0);"><img src="img/image2.png"></a>
<h3>Item 2</h3>
</div>
<div class="selection-item">
<a href="javascript:void(0);"><img src="img/image3.png"></a>
<h3>Item 3</h3>
</div>
</div>