如何解决如何在ajax调用中获取数据属性
我正在尝试使用ajax从锚标记中获取数据ID,但返回的结果是未定义的 以下是我的代码
$image_html .= '<a class="float-left " onclick="modal()" data-toggle="modal" data-target=".bs-example-modal-lg" data-id="'.$file->id.'" href="#MyModal" title="'.$file->alt_text.'"><div class="img-responsive" style="margin:10px; border: solid darkslategrey ;">
<img src="'.url('assets/uploads/'.$year.'/'.$month.'/images/media_thumb_'.$file->title).'" alt="'.$file->alt_text.'" width="120">
</div></a> ';
在上面的锚定标记模态函数上单击也称为该锚定标记,是通过在另一个ajax调用中呈现html
function modal()
{
var AJAX_URL = {!! json_encode(url('medialibrary/modal')) !!}
var dataId = $(this).data("id");
console.log(dataId);
$.ajax({
url: AJAX_URL,method: "post",dataType: 'json',data: {
"_token": "{{ csrf_token() }}","data_id" : dataId,},success:function(result){
console.log(result);
$(".modal-body").empty();
$(".modal-body-1").empty();
$(".modal-body-2").empty();
$(".modal-body").append(result.Record1);
$(".modal-body-1").append(result.Record2);
$(".modal-body-2").append(result.Record3);
}
});
}
解决方法
$(this)不在范围内。
尝试
const dataId = $("[href='#MyModal']").data("id");
或通过它:
onclick="modal(this)"
并使用
function modal(lnk) {
const dataId = lnk.dataset.id;
更好的方法是解决所有模式链接-删除onclick并执行:
const AJAX_URL = {!! json_encode(url('medialibrary/modal')) !!}
$("[data-toggle=modal]").on("click",function(e) {
const dataId = $(this).data("id");
.....
您可能想使用e.preventDefault()
,但由于它是模式切换,我不确定
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。