我尝试将新代码添加到已经设置的事件中,并且不知道如何在不重新编写代码的情况下执行此操作? 正如您所看到的,我有一个 onComplete 事件,在完成Flash文件后会抛出一个alert()。现在我还想打开一个jQuery对话框。我怎么能这样做?
问候和感谢,
-lony
<html><head><title>testAddEvent</title>
<script type="text/javascript" src="filesOthersForTesting/jquery-1.x.x.min.js"></script>
<script type="text/javascript" src="filesFromJWPlayer/jwplayer.js"></script>
<script type="text/javascript">
$(function(){
jwplayer('playerDiv-1').setup({
flashplayer: 'filesFromJWPlayer/player.swf',
file: 'sampleContent/bla.flv',
provider: 'video',
height: 300,
width: 300,
stretching: 'uniform',
events: {
onComplete: function() {
alert('Complete!');
}
}
});
});
</script>
<body>
<div id="playerDiv-1"></div>
</body>
更新1:
这段代码就是一个例子。 alert()是一堆行的示例。一般的问题是,我可以在已初始化的事件(events.onComplete)中添加一些内容。
类似于:events.onComplete = events.onComplete + 'new code here';
的参数。
@Pointy:是的jQuery 1.3.2已经过时了,切换到了x;)。
答案 0 :(得分:0)
function decorateBefore(target, decorator) {
var fn = function () {
decorator.apply(this, arguments);
return target.apply(this, arguments);
};
// fix inheritance if it's constructor
// (it's not needed in your case)
fn.prototype = target.prototype;
return fn;
}
someObj.onComplete = decorateBefore(someObj.onComplete, function(){
// my code here
// this function will accept same arguments as original, it's return value will be ignored
})