jQuery ajax html注入后函数不起作用

时间:2012-04-06 14:11:11

标签: javascript jquery ajax

我在网页上有以下ajax调用...

    var href=$('.poplight').attr("href");
    $('.poplight').attr("href","#");
    $('.poplight').click(function(){
        $.get(href, function(data) {
                $("#popup-contents").html(data) 
                    // inserts <div id="additionalInfo"> 
                    // <legend id="legend-params">Legend</legend>
                    // <div id="toggle"> This should toggle </div> </div>

            }
        );
    });

</script>

在同一页面上,链接的.js脚本会在单击图例时切换#toggle div。这一切在单独的页面上工作正常(只是传说切换本身),但我不能让它与ajax调用一起工作。我认为它与jquery“附加”某些doms时有关...我对jquery的内部工作知之甚少并不知道。

这是外部脚本。我尝试过使用onload,将其与html内联添加,以及其他一些变体。单击图例时会运行这些函数(如果在.show()方法之后插入警报('test'),它将显示警报窗口)。

$('#toggle').hide();                                            
$("#legend").toggle(
    function() {
       $("#toggle").show("slide", {direction: "up"}, 200);
    }, 
    function() {
       $("#toggle").hide("slide", {direction: "up"}, 200);
});

任何帮助都会很棒!

1 个答案:

答案 0 :(得分:0)

上面列出的评论帮助我解决了问题(我认为它们被SO的“算法”转换为评论......会将它们标记为答案)。 我基本上改变了:

$( “#传说”)。切换(...) 到

$(“#legend”)。on('click',functionX()...) 如果全局变量为true或false,那么functionX几乎是一个美化if语句隐藏了一些东西。也许不是最干净的解决方案,但它确实起了作用。