この質問はこれに関連していると思います:プラグインで init 関数はどのように機能しますか? これに答えられる人は、おそらくそれも答えられるでしょう。
プラグインを次のように呼び出すと、jQuery について何かに気づきました。
$('.view_title_images').prodigal({width: 500});
$('.glglg').prodigal({ width: 600 });
そして、私のinit
機能では、次のように拡張します。
options = $.extend({}, options, opts);
それを各要素に追加します:$(this).data('prodigal', options)
セレクターで。後で要素ので別の関数を呼び出すと、width
各要素 (500
一方と他方)の正しい値を取得します。600
open
click
しかし、もしそうなら:
options = $.extend(options, opts);
両方のセレクターについて、別々に呼び出されたにもかかわらず、600
. これをテストするには、open
関数で次のようにします。
console.log($(this).data('prodigal'));
空のオブジェクトに拡張しないと、そのセレクター/グローバル オブジェクトのオブジェクトがオーバーライドされることはわかっていますが、data
各セレクターでこれが発生するのはなぜですか?