I haven't tested this, but I believe the beforeStart function takes a
parameter of the effect.

So your beforeStart function should look like:
beforeStart: function(effect) {
   if (menu.currentHeader == element) {
       effect.cancel();
   }
}

hope this helps
Nicholas

On 5/22/06, Brice Burgess <[EMAIL PROTECTED]> wrote:
Is there a way to cancel a specific effect? For instance; Effects are
added to the queue. Before actually processing the effect, I'd like to
check a condition & cancel the effect if necessary.

Here's the code excerpt:
var menu = {
    toggleText: function(element,toggle) {
        var vis = $(element+'Text').visible();
        if (toggle && !vis) { // toggle text ON
            new Effect.BlindDown(element+'Text', {queue: {scope:
'headers', position:'front'}});
        }
        else if (!toggle && vis && this.currentHeader != element) {
            new Effect.BlindUp(
                element+'Text',
                {
                    queue: {scope: 'headers', position:'end'},
                    beforeStart: function() {
                        if (menu.currentHeader == element) {
                            this.cancel();
                        }
                }
            });
        }
    },

    I'm not sure that this.cancel(); cancels the effect, nor that the
comparisson (currentHeader == element) remains static to the original
element the Effect was called for.

Any ideas?

Thanks,

~ Brice Burgess

_______________________________________________
Rails-spinoffs mailing list
[email protected]
http://lists.rubyonrails.org/mailman/listinfo/rails-spinoffs



--
DCRails.com || Making the Metrorail fun!
_______________________________________________
Rails-spinoffs mailing list
[email protected]
http://lists.rubyonrails.org/mailman/listinfo/rails-spinoffs

Reply via email to