MikeW
MikeW

Reputation: 4809

Under Chrome - Mootools inject fails with null element

I have this weird problem on Chrome - on my page I am injecting elements using Mootools specifically a lightbox that contains a jwplayer video. The problem on chrome is that referring to an element ie. $('grid_01'); returns null the second time I click on it. To get around this I'm trying to test the element is null and re-inject it

            var ss = $('holderdiv');
            var x = $('mb_inline_0_-1');
            if(x == null)
            {
                var el = new Element("div", {id: "mb_inline_0_-1"});
            //if this line below runs without error...
                ss.inject(el);

            }
            //.........why would x2 be null?

             var x2 = $('mb_inline_0_-1');

Chrome says its null. Is there something I can do to ensure the DOM is updated ?

Thanks

Upvotes: 0

Views: 436

Answers (2)

Julian H. Lam
Julian H. Lam

Reputation: 26124

Injecting a newly created Element is written in the format newElement.inject(existingElement, position);.

So in your case, if you are planning to inject the newly created div (contained in el) into $('holderdiv'), it should be done thusly:

var el = new Element('div', {
    . . .
});
el.inject('holderdiv', 'bottom');    // Although 'bottom' is assumed if nothing is passed

Upvotes: 1

rgthree
rgthree

Reputation: 7273

You mean to use grab, not inject.

ss.grab(el);  // Or el.inject(ss);

Your code has ss being injected into el, which is never attached to the DOM.

Upvotes: 1

Related Questions