Hi folks,

the thread about showing and hiding DDs when clicking DTs gave me an 
idea for a chainable if/else construct. I have implemented and tested it 
and now I'd like to know if this is useful enough to be released as a 
plugin or even adding to the core.

Basically I extended the current is(String expression) method. It now 
accepts one or two functions. If one is given, it will be executed for 
every element that fits the expression. If the second function is given, 
it will be executed for every element that does not fit the expression.

Applied to the click dt to show/hide dd example:
$(document).ready(function() {
    $('#faq').find('dd').hide().end().find('dt').click(function() {
        $(this).next().is(':visible',
            function() { $(this).slideUp(); },
            function() { $(this).slideDown(); }
        );
    });
});

The extended is method looks like this:
    is: function(expr, ifCallback, elseCallback) {
        if(ifCallback) {
            var elseCalllback = elseCallback || function() {};
            return this.each(function() {
                if($(this).is(expr)) {
                    ifCallback.apply(this);
                } else {
                    elseCallback.apply(this);
                }
            });
        }
        return expr ? jQuery.filter(expr,this).r.length > 0 : false;
    },

The strength of this addition: is() returns the jQuery object, therefore 
it does not break the chain. Your opinions?

-- Jörn


_______________________________________________
jQuery mailing list
[email protected]
http://jquery.com/discuss/

Reply via email to