在用新数据重新加载visual之后,Javascript不会加载
我正在Arcadia数据(BI工具)上创建自定义样式。我注意到,在我尝试展开表列或转到表的第2页后,它将恢复到其原始样式表,我的自定义js将停止运行 例如,我在一个页面中有3个表在用新数据重新加载visual之后,Javascript不会加载,javascript,jquery,d3.js,Javascript,Jquery,D3.js,我正在Arcadia数据(BI工具)上创建自定义样式。我注意到,在我尝试展开表列或转到表的第2页后,它将恢复到其原始样式表,我的自定义js将停止运行 例如,我在一个页面中有3个表 <div> .. table 1 .. </div> <div> table 2 .. </div> <div> table 3 .. </div> 这是代码结构的一个示例,
<div>
.. table 1 ..
</div>
<div>
table 2 ..
</div>
<div>
table 3 ..
</div>
这是代码结构的一个示例,
在加载新数据时,我是否需要在代码中包含任何内容来强制我的js启动
我意识到有一种叫做ajax的方法,用来调用数据并将其重新加载到表中。进入chrome开发者模式>网络>xhr,意识到有回应
所以我假设一旦ajax制作完成,所有定制的js都消失了
更新
我确实试过了
$( document ).ajaxComplete(function() {
// chChange.style('background','red')
let b = d3.selectAll("#" + arcapi.chartId() + " td.viz-td- header").append('div').attr('class','roger').text("test")
console.log('data fired')
});
当数据重新加载或ajax完成时,它会触发日志“data fired”。但是我附加了文本“test”的div将消失 是的,如果ajax等导致一些DOM结构被替换,那么连接到任何被替换节点的任何单击处理程序(或其他事件处理程序)都将消失。经典的解决方案是将单击处理委托给静态容器(未替换的DOM节点)。请参阅[.on(events[,selector][,data])]()。hi@Roamer-1888,我做了
$(document).ajaxComplete(function(){}
,当我做日志时,它正在启动,但dom结构仍然无法捕获最初开发的内容。是的,如果ajax等导致某些dom结构被替换,则任何单击处理程序(或其他事件处理程序)附加到任何替换的节点都将消失。经典的解决方案是将单击处理委托给静态容器(未替换的DOM节点)。请参阅[.on(events[,selector][,data])()。hi@Roamer-1888,我做了$(document)。ajaxComplete(function(){}
,当我编写日志时,它正在启动,但dom结构仍然无法捕获最初开发的内容。
$( document ).ajaxComplete(function() {
// chChange.style('background','red')
let b = d3.selectAll("#" + arcapi.chartId() + " td.viz-td- header").append('div').attr('class','roger').text("test")
console.log('data fired')
});