[英]get data-attributes passed to an element after the page load
我在javascript和jquery中相对较新。 我正在尝试创建和自定义<input type="file">
。 所以,我从视图中隐藏它,而在另一个触发时,客户点击a
元素。
所以基本上我的输入看起来像这样
<input type="file" style="display:none;" id="myFile">
而我这样的元素
<a href="#" class="add_image" data-index="0" data-conind="1"><i class="fa fa-picture-o fa-2x" aria-hidden="true"></i> Choose Image</a>
因此,要实现此目标并将数据属性传递给我所做的输入:
//open select of image
$(document).on('click','.add_image',function(e) {
e.preventDefault();
var att = $(this).data();
$.each(att,function(index,val) {
$('#myFile').attr(index,val);
});
$('#myFile').trigger('click');
});
这个想法是在客户选择图像后触发onChange事件以上传图像。 但是我需要数据属性。
$(document).on('change','#myFile',function(e) {
e.preventDefault();
console.log($(this).data());
});
在这种情况下,我得到的属性为null或未定义
您需要使用.data
而不是.attr
设置数据属性
$(document).on('click', '.add_image', function(e) { e.preventDefault(); var att = $(this).data(); $.each(att, function(index, val) { $('#myFile').data(index, val); }); $('#myFile').trigger('click'); }); $(document).on('change', '#myFile', function(e) { e.preventDefault(); console.log($(this).data()); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input type="file" style="display:none;" id="myFile"> <a href="#" class="add_image" data-index="0" data-conind="1"><i class="fa fa-picture-o fa-2x" aria-hidden="true"></i> Choose Image</a>
您可能需要在文件弹出窗口中选择一个文件才能查看console.log(因为它仅记录更改)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.