0

好的,所以我想这是一个简单的问题,我把事情复杂化了......

所以我有一个复杂的 json/jQuery 函数(3000 行),它构建一个 DOM 树,该树驻留在调用的 js 文件中,该文件内置了许多其他页面上的函数。这被称为 onload 回到页面以执行一些实时客户端加工。

现在使用<div id="tree"></div>以下函数调用 DOM 树:

<style type="text/css" src="css/kmltree.css
<script src="css/kmltree.min.js"></script>
<script src="source/extensions.pack.js"></script>
<script type="text/javascript" src="source/gearth_public_d4_multi_son.js"></script>

最后一个调用是调用的主要函数:

    var tree1 = kmltree({
    url: 'kml/ca_son.kml',
    gex: gex,
    mapElement: $('#geeMap'),
    element: $('#tree')
});

tree.load();

对于每棵树,您将变量更改为 tree1, tree2...

我需要做的是使用复选框来触发每棵树,而不是 onload,因为当一次加载所有树时页面加载速度太慢。

我已经尝试了所有我能找到的 onClick 示例,但似乎没有一个适用于 id 调用。

关于需要更改代码以获得我正在寻找的结果的任何想法?

谢谢你的时间!

4

2 回答 2

0
<input type="checkbox" onchange="doTrees()"/>
<script>
function doTrees()
{
    //Load Trees, what ever they are
}
</script>
于 2013-05-29T21:07:23.600 回答
0

你可以在你的 HTML 上尝试这样的事情:

<input type="checkbox" name="selectTree" value="yourTree" />

并在您的脚本上使用复选框的值来动态加载树:

var tree,
    selectURL,
    selectTree = $('[type="checkbox"][name="selectTree"]');

selectTree.on('change',function() {
    selectURL = $(this).val();
    tree = kmltree ({
        url: selectURL,
        element: $('#tree')
    });

    // use your tree
});
于 2013-05-29T21:18:12.817 回答