javascript - 无法点击通过 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
。
解决方案
CTRL+U 是查看页面源代码,显示发送到浏览器的服务器端 HTML。它不包含活动 DOM 的结构以及在页面提供给您之后发生的任何更改——这意味着由 JavaScript 或 Ajax 等异步事件更改的任何内容。
对于实时 DOM,您应该使用 Web Inspector(或等效的……不同的浏览器称其为略有不同的东西——它是 Chrome 中的 DevTools)。
由于您使用的是 JQuery,因此您可以将事件附加到尚不存在 w/live() 的元素。
推荐阅读
- javascript - 从 XHR 请求中返回一个值
- html - Chrome 字体大小从 chrome-setting-appearance 更改不适用于我的反应页面
- javascript - 如何使用 react-native-thermal-receipt-printer 在打印数据中自定义和添加 javascript
- xml - 如何使用 XSLT 正确删除 XML 标记
- algorithm - 从二维数组中提取一列的时间复杂度是多少?
- python - 列名无效 - 出了什么问题?
- typo3 - 如何使用扩展和站点包定义外部 CSS 的加载顺序
- string - 如何在 Erlang 中读取大小为 6GB 的文本文件?
- python - 合并 3 个数据帧,其中 2 个数据帧具有唯一 ID,但第 3 个数据帧具有其他 2 个唯一 ID 的组合
- java - 如果数据以单词“OPTIONS”开头,则数据不会到达服务器套接字