0

このコード<script>は、HTML ファイルの上部にあるタグに含まれています。

    $(document).ready(function()
{
    $('#scrollbar1').tinyscrollbar();
    $('a.jqtree_common').click(updateScrollbar());
});

$(function updateScrollbar()
{
    var oScrollbar = $('#scrollbar1');
    oScrollbar.tinyscrollbar();
    oScrollbar.tinyscrollbar_update();

    $('a.jqtree_common').click(updateScrollbar());
});

しかし、何らかの理由でこれを実行すると、updateScrollbar()is undefined within と表示されます(document).readyupdateScrollBar()内部(document).readyを定義しようとするとupdateScrollBar()、ある種の無限ループに陥ります。

私の質問は 2 つあります。

  1. updateScrollBar()の範囲内で定義するにはどうすればよい(document).readyですか?
  2. 'a.jqtree_common'この機能を要素に割り当てるより良い方法はありますか? それらは実行時に動的に作成され、Web ページが使用されると変更されます。それらのいずれかがクリックされるたびに関数を実行したい。

小さなスクロールバーjqtreeを使用しています

編集:要素をクリックするとより多くの要素が作成$('a.jqtree_common').click(updateScrollbar);されると信じているため、スクロールバーが更新されるたびに割り当てが行われるようにします。'a.jqtree_common''a.jqtree_common'

4

5 に答える 5

1

Click イベントの関数の結果ではなく、関数参照をコールバックとして渡します。()関数を呼び出し、結果をコールバックとして設定します。これにより、内部で updatescrollbar が再度呼び出され、無限ループに入ります。

 $(document).ready(function()
{
    $('#scrollbar1').tinyscrollbar();
    $('a.jqtree_common').click(updateScrollbar);
});

function updateScrollbar()
{
    var oScrollbar = $('#scrollbar1');
    oScrollbar.tinyscrollbar();
    oScrollbar.tinyscrollbar_update();

    //$('a.jqtree_common').click(updateScrollbar);
}
于 2013-05-28T22:35:34.220 に答える
0

これは最終的に私のために働いたものです:

$(document).ready(function()
{
    $('#scrollbar1').tinyscrollbar();
    $('a.jqtree_common').click(updateScrollbar);

    function updateScrollbar()
    {
        var oScrollbar = $('#scrollbar1');
        oScrollbar.tinyscrollbar();
        oScrollbar.tinyscrollbar_update();

        $('a.jqtree_common').click(updateScrollbar);
    }
});
于 2013-05-29T00:09:25.020 に答える
0

このコードを試してください:

 $(document).ready(function() {

    var updateScrollbar = function () {
        var oScrollbar = $('#scrollbar1');
        oScrollbar.tinyscrollbar();
        oScrollbar.tinyscrollbar_update();
    };

    $('#scrollbar1').tinyscrollbar();
    $('a.jqtree_common').click(updateScrollbar).click();
});
于 2013-05-28T22:35:03.040 に答える