4

我正在使用 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>

这是测试页面:http: //vt-test.co.nf

请问有什么帮助吗?

4

3 回答 3

3

由于您使用的是 jQuery 1.3,请尝试jQuery.live像这样使用:

$('#container_logo').live('click', function() {
    alert('Work!');
});

笔记:

从 jQuery 1.7 开始,不推荐使用 .live() 方法。

编辑

我找到了使用 JWPlayer 的 onReady 事件的解决方案:

$(function() {            
    jwplayer("container").onReady(function() {
        $('#container_logo').click(function() {
            alert('Works!');
        });
    });
});

您可以在中看到它的实际效果,this jsfiddle 但是,我建议您更新您的 jQuery 版本并使用jQuery.on

于 2014-03-13T20:11:27.510 回答
3

首先,我建议您更新您的 jQuery 版本或使用jQuery noConflict.

然后,您需要用包装器 div 包围您的图像,并使用.on().

HTML:

<div id="myWrapper">
    <img class="jwlogo" id="container_logo" src="..." />
</div>

jQuery:

$(document).ready(function() {
    $("#myWrapper").on("click", "#container_logo", function() {
        alert("Work!");
    });
});
于 2014-03-13T20:16:31.083 回答
2

实际上,右上角的链接对我有用。

但是,请尝试:

$(document).on('click', '#container_logo', function(){  
    alert("hello"); 
});  

如果元素被注入,那就可以了。

由于您使用的是旧版本的 jQuery (1.3.1),因此您必须使用.live(),如下所示:

$(document).live('click', '#container_logo', function(){  
    alert("hello"); 
});  

另请注意,您可以将包装器绑定到注入代码的 DOM 元素:

$('#container').on('click', '#container_logo', function(){  
    alert("hello"); 
});  
于 2014-03-13T20:10:58.923 回答