2

初期化後にスクロール量を特定のIDに保存するスクロールプラグインがあります。

jQuery を使用して div の ID を取得し、それを変数の入札に格納しています。

var bid = $(this).parent().parent().find(".video_s").attr('id');

コンソールでは、var bid は要素 ID を返します。(これは正しく動作します)

スクロール量はDOM要素ID固有のオブジェクトに格納されるため

var bpos = bid.scrollData.scrollPosition[0][0];

上記のコードが機能しない

変数bidには要素のIDが含まれます。

コンソールに入力elementID.scrollData.scrollPosition[0][0]すると、スクロール量が完全に返されます。ここで、elementID は、水平コンテナーの場合の特定の ID です。

何が悪いのか誰か教えてください。

解決策 1: window[bid].scrollData.scrollPosition[0][0]

解決策 2: eval(bid).scrollData.scrollPosition[0][0]

注: eval() は決して使用しないでください。eval() は遅く、セキュリティ上のリスクがあります

4

3 に答える 3

0

bidは element-id を含む文字列のみですが、実際の dom-element を含む jQuery オブジェクトが必要なため、コードは次のようになります。

var bpos = $('#'+bid).scrollData.scrollPosition[0][0];

$('#'+bid)入札に格納されている ID に従って要素を取得します。

このプラグインの場合、要素はグローバル変数に保存されるため (これは非常に悪いプログラミング スタイルです)、以下を使用してそれらにアクセスできます。

window[bid].scrollData.scrollPosition[0][0];
于 2012-09-08T10:40:49.457 に答える
0

IDではなく位置を保存する必要があると思います

var bid = $(this).parent().parent().find(".video_s").attr('id');
var bpos = $('#'+bid).scrollData.scrollPosition[0][0]
于 2012-09-08T10:41:22.747 に答える
0

これを行う:

$('#'+bid).scrollData.scrollposition[0][0];
于 2012-09-08T10:41:23.933 に答える