开发者

Changing a jquery toggle's opening state dependant on mySQL data

I have a Jquery toggle which contains an entry form to a MySQL table.

Directly below this toggle I am displaying the data in a list.

What I would like to do is have it so that the toggle is in it's opened state (removal of "display:none") if the table has no records. And of course be closed if the table does co开发者_运维问答ntain records.

To make matters more complicated my table is hard filtered to the logged in user, so I would only the want the toggle to defaut to the open state if there are no records on the table matching the logged in user.

I hope that makes sense!

My PHP knowledge is poor at best so please go easy on me.

Here's my toggle code:-

(function($) { $.fn.simpleToggle = function(opts) {
    var options = $.extend({}, $.fn.simpleToggle.defaults, opts);

    return this.each(function() {
        $title = $(this).children('.togTitle');
        $title.each(function() {
            $(this).click( function() {
                $item = $(this);
                $item.next('.togDesc').slideToggle('fast', function() {
                    $icon = $item.children('.iconSymbol');
                    if ($(this).css('display') == 'block') {
                        $icon.removeClass('plus').addClass('minus');
                    } else {
                        $icon.removeClass('minus').addClass('plus');
                    }
                });
            });
        });
    });

}
$.fn.simpleToggle.defaults = {}
})(jQuery);


it's quite hard to imagine the underlying dom.

However, something like this could do the trick:

(function($) { $.fn.simpleToggle = function(opts) {
    var options = $.extend({}, $.fn.simpleToggle.defaults, opts);

    return this.each(function() {
        $title = $(this).children('.togTitle');
        $title.each(function() {
            $('.togDesc', this).each( function () {
                if ( $(this).children('.iconSymbol').length == 0 ) {    
                    $(this).show();                                 
                }
            });
            $(this).click( function() {
                $item = $(this);
                $item.next('.togDesc').slideToggle('fast', function() {
                    $icon = $item.children('.iconSymbol');
                    if ($(this).css('display') == 'block') {
                        $icon.removeClass('plus').addClass('minus');
                    } else {
                        $icon.removeClass('minus').addClass('plus');
                    }
                });
            });
        });
    });

}
$.fn.simpleToggle.defaults = {}
})(jQuery);
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜