【发布时间】:2018-05-14 12:37:22
【问题描述】:
我正在开发一个 Laravel 项目,但遇到了 Ajax 和 Blade 模板的问题。 在我的场景中,我有几个标签(可以是 div、按钮或列表项),带有一个类 ajaxaction 和一个属性 data-route,如下所示:
<button type="button" class="ajaxaction" data-route="http://localhost/webora/public/d/5106">
<button type="button" class="ajaxaction" data-route="http://localhost/webora/public/d/5105">
<button type="button" class="ajaxaction" data-route="http://localhost/webora/public/d/5104">
<button type="button" class="ajaxaction" data-route="http://localhost/webora/public/d/5103">
<button type="button" class="ajaxaction" data-route="http://localhost/webora/public/d/5102">
还有一个包含我将替换的内容的标签:
<div class="content">
</div>
在这个页面我有这样的脚本:
$('.ajaxaction').click(function () {
ajaxURL = $(this).attr('data-route');
$.get( ajaxURL, function(data) {
$('.content').html(data);
})
.fail( function(jqXHR, textStatus, errorThrown) {
$('.content').html(textStatus + ' ' + errorThrown);
});
});
正如我所期望的,每次单击标签时,ajax 都会发送一个 GET 请求,该请求返回一个 HTML 来替换之前的内容。 在某些情况下,被替换的内容有一个带有 ajaxaction 类的标签,如下所示:
<div class="content">
...
<button type="button" class="ajaxaction" data-route="http://localhost/webora/public/d/5199">
...
</div>
但是点击这个标签不会发送任何ajax请求。
【问题讨论】:
-
如果您有时间,“事件委托”是这里必读的主题
-
使用 .on() 方法将点击事件委托给(未来)动态添加到 DOM 的元素:stackoverflow.com/questions/15420558/…
标签: javascript ajax laravel blade