0

Jquery UIで構築した各タブにスクロール表示を配置したい。たまたま、以下のコードは最初のタブで機能し、そこで停止します。私がテストしたところ、すべての ul の if ステートメントまで問題なく動作しますが、最初の ul のみが if ステートメントを通過します。

私は何が欠けていますか?

また、falseの場合、 each() が停止することも理解しています。どうすればそれを回避できますか?

var i = 0;
$(".comp_pr ul").each(function () {
    var element0 = $(this).attr('id');
    var element1 = "#" + element0;
    var element = document.querySelector(element1);
    if ((element.offsetHeight < element.scrollHeight) || (element.offsetWidth < element.scrollWidth)) {
        $(element1 + ' ' + "li:nth-child(4) span:nth-child(3)").html('scroll <img id=""       src="img/forward.png" title=""/>');
        $(element1 + ' ' + "li:nth-child(4) span:nth-child(3)").attr('class', 'zscroll');
        $(element1 + ' ' + "li:nth-child(4) span:nth-child(3)").attr('id', 'zs' + i);
    }
    i++;
});

HTML の簡単な要約:

<div class="comp_pr">
<ul id="measure0">
<li></li>
......
</ul>
</div>

<div class="comp_pr>
<ul id="measure1"
<li></li>
......
</ul></div> 
....
4

4 に答える 4

2

The other tabs are hidden, right? So their Height and Width will be 0.

于 2013-08-20T22:46:31.380 に答える
2

あなたのコードは非常に非効率的です。これは同じコードを改善したものです:

$("#comp_pr ul").each(function (i) {
    if ((this.offsetHeight < this.scrollHeight) || (this.offsetWidth < this.scrollWidth)) {
        $(this).find('li:nth-child(4) span:nth-child(3)').html('scroll <img src="img/forward.png" title=""/>').addClass('zscroll').attr('id', 'zs' + i);
    }
});

また、テスト用の HTML マークアップがなければ、実際の問題を診断できるかどうかもわかりません。

于 2013-08-20T22:57:19.130 に答える
0

Barbara Laird が私に次の方法を教えてくれた後、私のために働いています。アクティベーション後にのみメジャーを取得できるため、アクティベート前ではなく、アクティベート (アクティベート) タブにある必要があることに注意してください。

$(function() {
$( "#tabs" ).tabs({
activate: function(event,ui) {
var tabid = ui.newPanel.attr('id');
var i = tabid.charAt(tabid.length-1)-1;
ulid = "#measure" + i;
var element = document.querySelector(ulid);
if( (element.offsetHeight < element.scrollHeight) || (element.offsetWidth < element.scrollWidth)){
    $(ulid).find('li:nth-child(4) span:nth-child(3)').html('scroll <img src="img/forward.png" title=""/>').addClass('zscroll').attr('id', 'zs' + i);
}
}
});
});
于 2013-08-21T11:04:32.477 に答える
-1

IDは一意である必要があり、問題が発生する可能性があります。代わりにクラス名を使用してください。試してみる価値があるかもしれません++i;

于 2013-08-20T22:50:01.673 に答える