我有一个html设计的textarea(沿着KPI磁贴的行),并且有一个Spotfire控制框(KPI值)。现在,该功能是当单击Spotfire控件时,模板上的可视化效果将基于ironpython脚本进行更改。
我想扩展此功能,以便通过单击html KPI磁贴上的任意位置来触发contol单击。
我能够捕获HTML元素上的click事件,但是当我在SF元素上触发click事件时,所需的动作并未被触发。
例如:
$(".kpivalue").click(function(){
this.children("SpotfireControl").trigger("click");
});
<DIV class=kpivalue><SpotfireControl id="1234567890xxx" /></DIV>
答案 0 :(得分:0)
我回答得太早了一点。哎呀!
控件不呈现为元素;这些是占位符或令牌,在呈现时会被HTML替换。
在计算值的情况下,生成的DOM如下:
<div id="myContainerDiv">
<span id="randomGUID1" style>
<span id="randomGUID2" viewid="randomGUID2" class="EmbeddedMiniatureVisualization" ...>
<span class="actionCell" style="...">theCalculatedValueValue</span>
</span>
</span>
</div>
因此,当您要定位实际计算值时,您将需要
$("#myContainerDiv").click(function(){
$(this).children("actionCell").trigger("click");
});
由于Spotfire的DOM可能有点怪异,所以您自己也必须有点怪异:)我的理解是 .trigger("click")
会触发对JQuery元素的点击,而不是实际DOM的点击。为此,您将需要以下内容:
$(".kpivalue").click(function(){
this.children("SpotfireControl")[0].click();
});