2011-08-11 26 views
0

私はthisのjQueryUI 1.8.5とjQuery 1.5.1のコードを修正する方法を理解しようとしています。そして、そのような高度なもので運が良ければ誰でも手を貸すことができますか?jQueryUI .extend woes

問題は、以下のコードである:

$.extend($.ui.boxer, { 
    defaults: $.extend({}, $.ui.mouse.defaults, { 
     appendTo: 'body', 
     distance: 0 
    }) 
}); 

それが何らかの理由でappendToと距離値とオプションを初期化しません。

+0

うわー、プラグインが大好きです:) – Alxandr

答えて

2

私は前にjQueryのUIで働いていないけど、私は夜のために、この1で刺しを取りました。 jsfiddleで示したコードには2つの問題があるようです。最初はUI 1.8で、あなたはもはや

$.widget("ui.boxer", $.ui.mouse, { 
    ... 
}); 

は、ウィジェットを宣言し、この新しいスタイルへの切り替え、ウィジェットを作成するときに拡張しなければならないということではありません、this._mouseInit()のエラーが表示されなくなります。これは、あなたが持っていた質問に答える前に行う必要がありました。なぜなら、デフォルトが機能しなかった理由です。このコミットではhttps://github.com/jquery/jquery-ui/commit/90fb45dffafc2e891b1ebca948ad33e6b94de112ui.mouse.defaultsoptionsに置き換えられました。 optionsはウィジェットの一部であるため、あなたは今、これらの変更は、作品何か(http://jsfiddle.net/wqvJG/1/)が生じた

$.extend($.ui.boxer.prototype, { 
    options: $.extend({}, $.ui.mouse.prototype.options, { 
     appendTo: 'body', 
     distance: 0 
    }) 
}); 

、プロトタイプを拡張する必要があります。ところで、このコードは素晴らしいです:)。

+0

驚くばかり、私は戻ってくるときにそれを与えるよ! –

0

私はそれをデバッグして、appendToが期待どおりになっていることを確認しました。tmp変数が2回使用されているという警告がありましたので、修正しました。その変更により、デモは私が思うように動作しているように見えます。それに何か問題があります:

http://jsbin.com/aqowa/150/edit#javascript,html

+0

jQuery 1.3.2とjQueryUI 1.7.2ではなく、1.5.1と1.8.5を使用しているので、これはうまく動作します。私は最後の2つの問題を修正しています。 –

+0

私は多分それを壊すので、私たちはすべてそれをデバッグすることができますフィドルを投稿参照してください。しかし私の提案は、それをデバッグしてその機能に入ることです。 ui.defaultsはおそらく1.8.x – Milimetric

+0

http://jsfiddle.net/HQSXt/ –