Javascript jQuery单击事件未触发
我使用的是jwplayer的最新版本6.8。当用户在播放器中单击我的徽标时,我尝试使用jQuery调用该函数,但它不起作用 这是HTML格式的播放器徽标图像标签:Javascript jQuery单击事件未触发,javascript,jquery,jwplayer,jwplayer6,Javascript,Jquery,Jwplayer,Jwplayer6,我使用的是jwplayer的最新版本6.8。当用户在播放器中单击我的徽标时,我尝试使用jQuery调用该函数,但它不起作用 这是HTML格式的播放器徽标图像标签: <img class="jwlogo" id="container_logo" src="..." /> 这是jQuery函数: <script type="text/javascript"> $(document).ready(function(){ $("#cont
<img class="jwlogo" id="container_logo" src="..." />
这是jQuery函数:
<script type="text/javascript">
$(document).ready(function(){
$("#container_logo").click(function() {
alert('Work!');
});
});
</script>
$(文档).ready(函数(){
$(“#容器_徽标”)。单击(函数(){
警惕(“工作!”);
});
});
这是测试页面:
有什么帮助吗?实际上,右上角的链接对我很有用 但是,请尝试:
$(document).on('click', '#container_logo', function(){
alert("hello");
});
如果元素被注入,就可以了
由于您使用的是较旧版本的jQuery(1.3.1),因此必须使用.live()
,如下所示:
$(document).live('click', '#container_logo', function(){
alert("hello");
});
$('#container_logo').live('click', function() {
alert('Work!');
});
还请注意,您可以将包装器绑定到代码注入的DOM元素:
$('#container').on('click', '#container_logo', function(){
alert("hello");
});
由于您使用的是jQuery 1.3,请尝试如下使用:
$(document).live('click', '#container_logo', function(){
alert("hello");
});
$('#container_logo').live('click', function() {
alert('Work!');
});
注:
从jQuery1.7开始,不推荐使用.live()方法
编辑
我找到了一个使用JWPlayer的onReady事件的解决方案:
$(function() {
jwplayer("container").onReady(function() {
$('#container_logo').click(function() {
alert('Works!');
});
});
});
你可以看到它在行动中
但是,我建议您更新jQuery版本并使用首先,我建议您更新jQuery版本或使用
jQuery noConflict
然后,您需要使用包装器div包围图像,并使用代理click事件
HTML:
<div id="myWrapper">
<img class="jwlogo" id="container_logo" src="..." />
</div>
$(document).ready(function() {
$("#myWrapper").on("click", "#container_logo", function() {
alert("Work!");
});
});
@胡言乱语是正确的
#container_徽标
在调用ready事件时在页面中不存在,因此选择器不起作用,并且没有附加任何单击处理程序。是否有特定原因导致您使用过时的jQuery版本?您是否已获得许可version@Damien黑色,嗯…你在用Mac吗?因为我在我的Windows 8.1上尝试了Firefox、IE、Chrome和Window safari。.live()
已被弃用,请使用.on()
。OTOH,看看OP的源代码,我现在意识到OP使用的是过时的jQuery版本(1.3.1),所以你可能是对的<代码>**是,。在从1.7版开始输入的jQuery land上,因此.live是正确的选择。**live()不推荐使用。你应该在上使用,比如@gibberish saidhower,我相信。live/.on应该绑定到该元素上方的元素:$(“#容器”)
,否?@MarianoCordoba我尝试了你的建议,但仍然没有运气:有什么建议吗?@MarianoCordoba Gosh…onReady!你太聪明了!我真蠢(非常感谢!成功了!:)你检查过OP的jQuery版本了吗?版本1.3.1中没有.on
,这是一个很好的答案+1(这将需要在2.5小时后发生,因为我现在没有选票了…@martynas我尝试了你的建议,但运气不佳:有什么建议吗?我明天会看一看-我有一个最后期限today@martynas没问题。非常感谢。on是抛出错误Uncaught TypeError:Object#没有方法“on”@gibberish-Weird…你在使用Mac吗?因为我在我的Windows 8.1上尝试了Firefox、IE、Chrome和Window safari。@胡言乱语我尝试了你的建议,但仍然没有成功:第一个例子:第二个例子:和第三个例子:有什么建议吗?@Love我刚才又试了一次。单击右上角时,我被重定向到此网站:。单击中心按钮时,视频将播放。我将查看您的JSFIDDKS并发布结果。@Love当单击第一个示例时,右上角的徽标再次成功超链接到它。在第二个示例中,单击JWPLAYER示例可以工作,但底部的blender徽标不能(!)。在第三个示例中,右上角的徽标也会将我带到“了解更多”网站。我正在使用Windows 7和当前版本的Google Chrome。