1

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

我犯的那个错误?欢迎任何建议。谢谢你。对不起,我的英语不好。

主.js:

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

主.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>
4

1 回答 1

1

问题是document.ready在主页中已经发生了。这意味着即使包装在document.ready. 如果代码在它引用的 html 之前,它将在 html 存在之前触发

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

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

委托示例

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

   console.log('bbbb');
   return false;
});
于 2012-12-22T23:44:50.673 回答