各スライドの名前を持つconfigオブジェクトを、スクロール可能なjQueryツールをインスタンス化する関数に渡しています。アクティブなタブIDと一致するように、ロケーションバーのURLを設定します。私はそれが正しいスライド(それは提供されたコードの下にあります)に移動する名前でURLを渡すように働いているが、スライドが変更されたときにURLを更新しようとしています。私はそれを得るために何をする必要があるのか知っていますが、それはどのように行うのではなく、質問のタイトルのようなものです。オブジェクトに値を渡し、その値を持つプロパティを取得します。オブジェクトのプロパティ値が指定されたJavaScriptでは、対応するプロパティ名を見つけることはできますか?
$(function() {
Scrollablenav.init({
"#tulips": 0,
"#daffodils": 1,
"#zebras": 2,
"#horseshoes": 3
});
});
Scrollablenav.init = function(config){
var scroller = $(".scrollable").scrollable({
circular: true,
onSeek: function (event) {
parent.location.hash = function(){
//something that looks at config, sends it the value of the current slide and returns corresponding property name
}
}
}).navigator({
navi: '#slideTabs',
naviItem: 'a',
activeClass: 'current',
history: true
}).data('scrollable');
if (!isNaN(config[location.hash])){
scroller.seekTo(config[location.hash], 0);
}
}
あなたはconfigオブジェクトを使用している唯一の場所ですか?キー/値を逆にしたり、両方を@MikeChristensenのようなオブジェクトに移動させるのはなぜですか? – Mathletics
複数のプロパティの値が同じ場合はどうなりますか?最初に一致するプロパティ、またはすべての配列を検索したいのですか?...?私はそれがあなたのサンプルデータでは起こらないだろうと思っていますが、それでも... – nnnnnn
それはインデックスなので、一致するべきではありません。ストレート配列を使ってインデックス値を使うことを考えましたが、まだ両方の方法が必要です(すなわち、 'scroller.seekTo(config [location.hash]、0);') – Damon