在jQuery中使用方法POST加载其他函数

时间:2012-12-22 23:31:31

标签: jquery click jquery-post

在控制台中打印“aaa”,但我无法通过点击$(“#test”)来打印“bbb”。

我犯的那个错误?欢迎任何建议。谢谢。 抱歉我的英语不好。

main.js:

$("#load").click(function () {
    $.post("second.php",function(data){
        $('#result').html(data);
    });
    return false;
});

main.html中:

...
<div id="result"></div>
...

second.php返回:

<script>
$(document).ready(function() {
        try
        {
            console.log("aaa");
            $("#test").click(function () {
                console.log("bbb");
                return false;
            });
        }catch(e){}
    });
</script>

<div>hello</div>
<a id="test" href="#">Test</a>

1 个答案:

答案 0 :(得分:1)

问题是主页中已经出现document.ready。这意味着即使包含在document.ready中,AJAX中的任何代码也会立即触发。如果代码在它引用的html之前,它将在html存在之前触发

如果您将代码放在相同的html之后,它将起作用。

另一种方法是使用on()将事件处理程序委托给页面加载时不存在的未来元素。您可以在主页面中使用on()并在主页加载时运行它

委托示例

$(document).on('click','#test', function(){

   console.log('bbbb');
   return false;
});