【问题标题】:Element showing as null on page load页面加载时元素显示为 null
【发布时间】:2017-11-16 11:27:10
【问题描述】:

我正在尝试将悬停功能附加到由脚本生成的动态 div ID(使用 Smooch api)。加载完所有内容后,即使我在控制台中运行该功能也不起作用。

我试过了:

$(document).on("mouseenter", "#messenger-button", function() {
    alert("hey")
});

我不断收到此错误:Uncaught TypeError: Cannot read property 'on' of undefined

启动 Smooch api 后生成的 html 如下所示:

<iframe>
 <html>
   <div id="messenger-button" style="background-color: rgb(10, 74, 119);>
 </html>
</iframe>

没有允许我添加类、更改 css 或执行任何操作来更改生成的 iframe 中 div 的属性的功能。任何使用过 Smooch api 的人都可以告诉我如何向生成的信使按钮添加悬停状态吗?

【问题讨论】:

  • 听起来你没有 jQuery。控制台中的 $ 不是 jQuery... $ 是 chrome 中的 querySelector
  • 除非 iframe 与您的网站来自同一个域,否则您无法通过这种方式访问​​ iframe 的内容。
  • @epascarello 我确实安装了 jQuery。我可以使用 jQuery 将悬停状态附加到我创建的静态 div 上。它只是不适用于动态内容。
  • jQuery 不会返回 undefined

标签: javascript jquery css smooch


【解决方案1】:

您需要选择 iframe 并获取其内容并从那里更改元素,请参阅。

$(document).ready(function(){
    var iFrameDOM = $("iframe").contents();

    iFrameDOM.find("#messenger-button").addClass("new-messenger");
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-25
    • 1970-01-01
    • 1970-01-01
    • 2013-05-08
    • 1970-01-01
    相关资源
    最近更新 更多