jquery - 在ajax调用后丢失click()事件?

时间:2010-06-07 03:07:33

标签: jquery ajax jquery-ui

在以下网页liamharding.com/pgi.php我在页面左侧有一个选项面板,在单击面板的箭头时打开和关闭,这样可以正常工作直到您选择市场(用于测试使用其中一个) “随机漫步”市场并点击“显示/ Refesh图表”,然后使用get_graph(forexName, myCount, divIsNew)函数进行ajax调用。

一旦完成此调用,将显示一个图形,然后我的选项面板click()事件不起作用?

ajax调用返回变量ajax_data中的数据,当我执行以下代码var jq_ajax_data = $("<div/>").html(ajax_data);时会出现问题。我需要将其包装在一起,以便我可以使用jQuery从中提取数据。如果这行代码被注释掉,click()事件可以正常工作吗?

希望有人可以提供帮助,我花了很多时间但却无法找到问题所在。

3 个答案:

答案 0 :(得分:19)

如上所述,您不应该使用.live,现在不推荐使用.live。你应该使用.on例如

$(document).on('click', '.selector', function(){
    //Your code here
});

答案 1 :(得分:6)

如果没有看到完整的代码,很难确切地说明导致点击事件丢失的原因,但您可以尝试将点击设置为这样的直播事件:

$("#clickableItem").live("click", function() { 
    //do stuff
});

答案 2 :(得分:5)

您正在使用新的html替换div的内容。新的html不会分配任何点击事件。

使用.live命令始终让您的元素分配了点击事件。