当用户单击我的 ASP.NET 应用程序中的“搜索”按钮时,会加载一个临时的“微调器”div。然后当搜索(最终)完成时,spinner div 的内容被SubmitSearch
方法返回的 HTML 替换。
$("#spinner").load("@Url.Action("SubmitSearch","Search")");
我还有这个 JavaScript 文件,它被加载到:
$(document).ready(function() {
$(".card--result").hover(function () {
alert("hover");
$(this).css('cursor', 'pointer');
});
$(".card--result").click(function() {
var url = $(this).attr('data-url');
window.open(url, "_self");
});
});
但是,问题是带有card--result
类的 div是在.load
方法成功后添加到页面的新 HTML 的一部分。
如何注册.hover
和.click
函数,以便在新加载的 HTML 元素上实际触发它们?
为此,您需要事件委托。
事件委托允许我们将单个事件侦听器附加到父元素,该事件侦听器将为匹配选择器的所有后代触发,无论这些后代现在存在还是将来添加。
$(document).on("click", ".card--result", function() {
var url = $(this).attr('data-url');
window.open(url, "_self");
});
对于光标部分,我想 CSS 就足够了
.card--result {
cursor: pointer;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句