我有一个jQuery代码,它假设对具有传递ID名称的元素产生影响
function updateElements(tab_name) {
var tab_name = tab_name;
// ...
$("#table-responsive-" + tab_name).load(url, function(resp, status, xhr, tab_name) {
$('[data-toggle="tooltip-pass"]').tooltip({ 'placement': 'bottom' });
$('[data-toggle="tooltip"]').tooltip({ 'placement': 'top'});
$('[data-toggle="popover"]').popover({
trigger: 'hover',
'placement': 'top',
'container': 'body'
});
$('#' + tab_name).DataTable({
"paging": false,
"columnDefs": [{
"orderable": false,
"targets": 4
}]
});
});
}
"#table-responsive-" + tab_name
工作正常但$('#' + tab_name).DataTable()
没有。我错过了什么线索?
答案 0 :(得分:1)
$.load()
的回调函数没有通过4个参数,它只传递了3个。你的第四个参数完成了'完成'因此,函数变为undefined
- 并且由于您已使用此函数参数隐藏了原始tab_name
,因此选择器无法工作:
$("#table-responsive-"+tab_name).load(url, function(resp, status, xhr, tab_name) {
//tab_name was never passed in, remove it from args list
});
这是the signature,用于完成'函数来自$.load():
:
完整 类型:Function(String responseText,String textStatus,jqXHR jqXHR)请求时执行的回调函数 完成。
答案 1 :(得分:0)
您将tab_name
作为全局变量传递,并将参数传递给加载函数。因此,似乎该参数正在替换全局tab_name
变量的值。这就是我能找到的全部内容。尝试替换参数名称。