Javascript jQuery单击事件未触发

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

我使用的是jwplayer的最新版本6.8。当用户在播放器中单击我的徽标时,我尝试使用jQuery调用该函数,但它不起作用

这是HTML格式的播放器徽标图像标签:

<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。