1

如果我有这样的列表项:

<li class="" id="view_ideas"><a href="#"><span>View ideas</span></a>

我想让它在单击时加载以下“获取满意度参与”小部件:

<div id="getsat-widget-6135"></div>
<script type="text/javascript" src="https://loader.engage.gsfn.us/loader.js"></script>
<script type="text/javascript">
if (typeof GSFN !== "undefined") { GSFN.loadWidget(6135,{"containerId":"getsat-widget-6135"}); }
</script>

我应该怎么办?我试过使用这样的东西:

<script type ="text/javascript">
    jQuery(function () {
        jQuery('#view_ideas').click(function(){
            var str = jQuery(this).text();
            jQuery('#getsat-widget-6135').load('<div id="getsat-widget-6135"></div>
                <script type="text/javascript" src="https://loader.engage.gsfn.us/loader.js"></script>
                <script type="text/javascript">
                    if (typeof GSFN !== "undefined") { GSFN.loadWidget(6135,{"containerId":"getsat-widget-6135"});     
}
            </script>');
        });
    });

我试过这样的事情:

<script type="text/javascript">
    var script = document.createElement('
    if (typeof GSFN !== "undefined") { GSFN.loadWidget(6135,{"containerId":"getsat-widget-6135"});
       jQuery("#getsat-widget-6135").append("#view_ideas"); }
 </script>')

大多数情况下,单击 li 时没有任何反应。我也玩过 .innerHTML 和 .text,我尝试将 JavaScript 直接放入 li 或 span 中,并尝试用脚本替换 href(这两者都使 li 和/或小部件消失或在没有任何事件的情况下出现在奇怪的位置)等。

这是我一直在演奏的小提琴:

http://jsfiddle.net/nQhDG/

4

2 回答 2

1

试试这个,你非常接近:

jQuery(function () {
    jQuery('#view_ideas').click(function () {
        if (typeof GSFN !== "undefined") { 
            $('#getsat-widget-6135').empty();
            GSFN.loadWidget(6135,{"containerId":"getsat-widget-6135"}); }
    });
});

<script type="text/javascript" src="https://loader.engage.gsfn.us/loader.js">
</script>
<ul id="nav1">
    <li class="" id="view_ideas"><a href="#"><span>View ideas</span></a>
    </li>
</ul>
<div id="getsat-widget-6135"></div>

http://jsfiddle.net/nQhDG/4/

于 2013-06-20T15:43:19.517 回答
0

我会使用 css 并将显示设置为没有您要加载的项目。然后你可以让 li 有一个 onclick ,它会通过将显示更改为块(或任何你想要的)来显示项目,你可以通过 document.getElementById(id of item need shown).style.display='block' 来做到这一点

于 2013-06-20T15:43:47.517 回答