【问题标题】:How to toggle item when clicking on an iFrame within a div?单击div中的iFrame时如何切换项目?
【发布时间】:2017-03-09 22:53:57
【问题描述】:

当在我的 tumblr 主题中单击音频帖子的播放按钮时,我想将“隐藏”类切换到“均衡器”div。我的 HTML 如下:

<div class="musicplayer">
<div id="playbutton">
{block:AudioPlayer}
{AudioPlayer}{/block:AudioPlayer}</div>
<div class="equalizer hide">
</div>

问题是 tumblr 导入了音频播放器的相关代码,所以下面的脚本没有运行:

$('.playbutton').click(function(){
     $(".equalizer").toggleClass("hide");
});

在页面的源码中,本节的HTML如下:

<div class="musicplayer">
<div id="playbutton">
<span id="audio_player_151764783410"><div class="audio_player"><iframe class="tumblr_audio_player tumblr_audio_player_151764783410" src="http://myspacethemeology.tumblr.com/post/151764783410/audio_player_iframe/myspacethemeology/tumblr_o6qkb21Z4L1utbsw6?audio_file=http%3A%2F%2Fk003.kiwi6.com%2Fhotlink%2Fdge2vl4ftj%2F04_Into_You.mp3&color=white&simple=1" frameborder="0" allowtransparency="true" scrolling="no" width="207" height="27"></iframe></div></span></div>
<div class="equalizer hide">
</div></div>

音频播放器位于 iFrame 中,每个音频帖子的 iFrame 类都不同。是否有任何脚本可以在单击播放按钮时触发事件?

【问题讨论】:

  • 我在这个问题上打错了,但#playbutton 也不起作用。不过还是谢谢。
  • 我刚刚在您的网站上发现课程实际上是.play_button。我可以使用 $(".play_button") 通过 jquery 访问它
  • @Adam 我已经尝试过了,当我点击播放按钮时似乎没有任何反应。

标签: javascript jquery iframe tumblr


【解决方案1】:

您无法检测到 跨域 iframe 中的事件。

See this answer for reference

【讨论】:

【解决方案2】:

正如@adam 所说,您无法检测跨域 iframe 的事件。但是你仍然可以用 CSS 伪元素做一件棘手的事情。但此修复将禁用对 iframe 的控制。即)您无法单击 iframe 中的任何内容。

.audio_player{
    position:relative;
}
.audio_player:after{
   content:'';
   position:absolute;
   top:0; left:0; right:0; bottom:0;
}

您的点击事件现在可以工作了。希望这会有所帮助。

【讨论】:

  • 感谢您的建议,但由于 iframe 包含音频的播放按钮,因此在这种情况下这没有用,因为 iframe 需要可点击。不过我会记住它以备将来使用!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-25
  • 2016-04-28
  • 1970-01-01
相关资源
最近更新 更多