【发布时间】:2021-02-19 08:29:21
【问题描述】:
我有一些问题。我正在使用 Laravel。我使用 Ajax 从控制器传递 html 字符串。示例:
$html .= '<span class="book-wishlist-btn addwish" id="addwish'.$book->id.'" data-placement="left" title="'.$title.'" style="'.$style.'" book_id="'.$book->id.'">';
$html .= '<i data-feather="heart">';
$html .= '</i>';
$html .= '</span>';
在我的刀片上,我有 2 个 Ajax,用于检索我从控制器传递的数据并运行类 addwish。 Span class id(addwish)会根据jquery的点击函数触发。
Ajax 检索 $html 字符串:
$.ajax({
method:"POST",
dataType: "json",
url: "{{url('books')}}",
data: {html:html},
success: function(data){
feather.replace();
}
});
Ajax 触发 addwish 类点击:
$(".addwish").click(function(){
$.ajax({
url : "{{url('addwishlist')}}",
//my codes goes here..
});
});
我的问题是无法检测到 addwish 类。任何人都可以帮助给出一个想法?谢谢
【问题讨论】:
-
你必须使用事件委托。
$(document).on("click", ".addwish", function(){ -
@CarstenLøvboAndersen Tq。它现在解决了我的问题。只需添加代表团。但是,为什么
$(".addwish").click(function(){不能正常运行? -
因为新的
.addwish元素不是 DOM 的一部分。当浏览器读取$(".addwish").click(function(){这一行时,只有当时具有addwish类的元素才会获得点击事件。 -
请试试这个 $('body').on('click','.addwish',function(){ $.ajax({ // 你可以继续你的请求。}) } ) 如果这不起作用,请告诉我,我很乐意提供帮助