-1

現在機能していないコードに機能するコードを書き直しています。基本的に、div をループして、どの div が表示されているかを確認し、この div を jquery オブジェクトにキャッシュして続行したいと考えています。

    $('#MainDiv .LPanel').each(function () {

        if ($(this).is(':visible') === true) {
            var ThePanel = $(this);
        }
    });

    if (ThePanel.width() < 700) { // bugs here

ThePanel にアクセスできないのはなぜですか?? 私は何が欠けていますか?

ご提案いただきありがとうございます。

PS: 動作するコードは返されるだけattr('id');ですが、オブジェクト全体が必要です!

4

2 に答える 2

3

var限られた範囲で使用します。正しいアプローチは次のとおりです。

var ThePanel;
$('#MainDiv .LPanel').each(function () {

    if ($(this).is(':visible') === true) {
        ThePanel = $(this);
    }
});

if (ThePanel.width() < 700) { // bugs here

なぜあなたはちょうどしないのですか

var ThePanel = $("#MainDiv .LPanel:visible");
if (ThePanel && ThePanel.width() < 700) ...

???

于 2012-08-11T19:22:09.807 に答える
1

ThePanelループの外で変数を宣言します。各コールバックが完了するたびに範囲外になります。

于 2012-08-11T19:21:04.417 に答える