首页 > 解决方案 > 无法点击通过 AJAX 呈现的元素

问题描述

标头内容通过 Ajax 呈现:

<script>
            $(document).ready(function() {
                var loadingTimer = setInterval(animate_loading, 66);
                $.post('home/load_header', {}, function(data) {
                    clearInterval(loadingTimer);            
                    $("#header_content").html(data);              
                });
            });
        </script>

我试图到达.switch_language,但当我签入CTR+U窗口时,html 中没有这样的东西。只有上面的JS。.switch_language存在但只能在选项卡中找到它F12/ELements。也试过wait(SECONDS)waitForSelector。每次Cannot dispatch click event on non-existing element

标签: javascriptcasperjs

解决方案


CTRL+U 是查看页面源代码,显示发送到浏览器的服务器端 HTML。它不包含活动 DOM 的结构以及在页面提供给您之后发生的任何更改——这意味着由 JavaScript 或 Ajax 等异步事件更改的任何内容。

对于实时 DOM,您应该使用 Web Inspector(或等效的……不同的浏览器称其为略有不同的东西——它是 Chrome 中的 DevTools)。

由于您使用的是 JQuery,因此您可以将事件附加到尚不存在 w/live() 的元素。


推荐阅读