0

すでに設定されているイベントに新しいコードを追加しようとしましたが、コードを再度記述しないとどうすればよいかわかりません。ご覧のとおり、Flash ファイルの終了後に alert() をスローするonCompleteイベントがあります。さらに、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 に切り替えました;)。

4

1 に答える 1

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
})
于 2012-06-13T15:14:29.663 に答える