【问题标题】:onClick Not Working In Internet Explorer, Looking for WorkaroundonClick 在 Internet Explorer 中不起作用,正在寻找解决方法
【发布时间】:2012-02-01 23:08:08
【问题描述】:

我正在制作一个视频库页面,其中有 6 个缩略图,用户可以点击它们来播放相应的视频。

当然,总共有超过 6 个视频,因此用户可以浏览各种类别/页面。

看看: Video Gallery Rough

在 Chrome 和 Firefox 中一切正常,但在 Internet Explorer 中单击缩略图不起作用。我做了一些研究,似乎 onClick 在 IE 中存在问题,但我找到的解决方案都没有奏效。

基本上视频缩略图都在一个表格中,每个都有一个onClick事件:

<td id='videoBox1td' onClick=''>

当用户加载/切换页面时,jQuery() 会动态编辑 onClick 属性:

$('#videoBox' + i + 'td').attr({'onClick':'frames[\'videourl\', videoPlaylist);'});

有什么想法吗?提前致谢。

【问题讨论】:

  • 您在 onClick 中的 js 格式似乎有点错误:frames[\'videourl\', videoPlaylist);
  • 这就是我必须用来让它在框架中播放的 js。在 chrome+ff 中工作,问题在于 onClick 不是那个。

标签: jquery internet-explorer browser onclick onchange


【解决方案1】:

这个怎么样?

    $('#videoBox' + i + 'td').bind("click", function () {
        ... do stuff here...
    }

【讨论】:

  • 这几乎可以正常工作,但似乎将第 6 个视频的链接绑定到所有视频:link。我正在正确迭代,所以我不明白为什么它会覆盖其他视频框:(
  • 我有一个 XML,我从中提取链接:var linkhtml=x[i].getElementsByTagName("linkhtml")[0].childNodes[0].nodeValue;。然后在你有“在这里做事”的地方,我有:frames['nbaTeamArticlePlayer20091214141222'].playVideo(linkhtml, videoPlaylist20091214141222);,它正确地应用了链接。但是,一旦我单击任何缩略图,它就会调用变量 linkhtml 现在等于的内容,这是迭代后的最后一个视频
  • 我猜问题出在你的点击功能上。您可能在链接中有一个变量,并且您在循环中更改了它的值,期望它在回调实际发生时保持该值?我很确定这不是它的工作方式。该变量将被覆盖,这就是为什么您会看到最后一次迭代的值(我猜是第 6 次?)。要解决此问题,您可能需要使用 bind 来覆盖“this”关键字的含义,并使用 this 以某种方式引用与当前迭代相关的链接。
  • $('#videoBox' + i + 'td').bind("click", function () { frames['nbaTeamArticlePlayer20091214141222'].playVideo(this, videoPlaylist20091214141222); }.bind(链接html));
  • 我明白你的意思,我明白,但我不知道如何解决它。 put.bind(linkhtml) 在像这样的大括号之后似乎不起作用(只是现在不播放任何视频)。我应该只创建六个不同的linkhtml 变量吗?似乎很奇怪,这将是最好的方法......谢谢你到目前为止的所有帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-12-02
  • 2012-09-07
  • 2018-06-25
  • 1970-01-01
  • 1970-01-01
  • 2017-12-05
  • 2011-03-26
相关资源
最近更新 更多