1

嗨,我有一个交互式绘图功能。由于一些限制,每次用户与图形交互时,我都必须删除图形:

$("button").click(function () {
     $("p").empty();
 });

但是,然后我想通过调用(在 protovis 中)重新生成图形:

drawHistogram(){
var w = 420
var h = 300
var vis = new pv.Panel()
.width(w)
.height(h)
.margin(20);
//add data into the visualization
vis.render();
}

在 jQuery 中。但是,现在这个图形没有被标签包围,<p>所以当我点击按钮时,这个迭代不会发生任何事情。我将如何用标签包围drawHistogram()通话?<p>谢谢!

4

4 回答 4

0

为什么不拥有一个容器元素,并且每次调用 时drawHistogram(),在该方法中都将结果包装在一个"<p>"元素中。

在这里,看看这个例子是否有帮助。

http://jsfiddle.net/BP5hb/

最好的,

于 2012-04-17T21:12:25.570 回答
0

如果drawHistogram()是 PHP 函数:

<?php
    function drawHistogram() {
?>

    <P>

<?php

    // Draw Histogram code goes here

?>

    </p>

<?php
    }
?>
于 2012-04-17T20:28:04.663 回答
0

无论是什么元素 vis.render(); 渲染只需访问它并使用 jQuery http://api.jquery.com/wrap/包装它

<div class="vis-rendered">
  <div class="inner">Vis Image</div>
</div>

$('.vis-rendered').wrap('<p />');

结果:

<p>
  <div class="vis-rendered">
    <div class="inner">Vis Image</div>
  </div>
</p>
于 2012-04-17T20:28:41.713 回答
0

您可以尝试使用 jQuery .wrap() 将元素包装在<p>元素中。

如果展开的 .inner 元素看起来像这样开始:

<div class="container">
  <div class="inner">Hello</div>
  <div class="inner">Goodbye</div>
</div>

然后$('.class').wrap('<p>')在渲染元素上使用:

$('.inner').wrap('<p class="new" />');

包装后的结果如下所示:

<div class="container">
  <p class="new">
    <div class="inner">Hello</div>
  </p>
  <p class="new">
    <div class="inner">Goodbye</div>
  </p>
</div>
于 2012-04-17T20:29:43.033 回答