javascript - 以名称作为 div 的数据值的函数
问题描述
我想执行一个名称是 div 的数据属性值的函数:
$('#dgok').click(function() {
var fn = $(this).attr('data-fn');
window[fn]();
});
function delimg(){
console.log('james'); // this works
let src = $('.imgact');
let afn = 'store';
$.post('images-pro.php', {afn, src}, function(data){ // line 75
console.dir(data);
});
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id='dgok' data-fn='delimg'>OK</div>
TypeError: Illegal invocation...at delimg (images.js:75)
有什么帮助吗?
解决方案
不知道到底是什么$('.imgact')
,很难知道它应该是什么。不过,我猜这是一个输入,如果我错了,请纠正我。
问题是您正在尝试发送 jquery 真的不想让您发送的数据。$('.imgact')
是一个元素,如果它是一个输入,我们可能想要它的值而不是元素本身。
看起来像这样:
$('#dgok').click(function() {
var fn = $(this).attr('data-fn');
window[fn]();
});
function delimg(){
console.log('james'); // this works
let src = $('.imgact').val();
let afn = 'store';
$.post('images-pro.php', {afn, src}, function(data){ // line 75
console.dir(data);
});
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" class".imgact" />
<div id='dgok' data-fn='delimg'>OK</div>
推荐阅读
- javascript - 当部分高于屏幕高度时如何临时禁用“滚动”
- kaldi - Kaldi的TDNN和LSTM的相关论文有哪些?
- android - 提交到Play商店后应用程序无法正常工作
- ajax - 如何抓取 AJAX 页面中的所有 url?
- r - 使用 `case_when` 和 `str_split` 的组合来改变数据框中的列
- angular - 像我们使用 jquery 或 vanilla javascript 那样在 Angular 6 中进行 dom 操作的最佳方法是什么
- objective-c - 在 Objective-C 中使用单例保留循环
- powershell - New-AzureADMSInvitation 仅适用于尚未受邀的用户
- python - 如何在熊猫数据框列上打印给定字符串的出现?
- php - PDF 未在 FPDF 中下载