0

hi Danny,
I have an issue where i need to get to a particular element when i click on a menu button.It is working fine in IE but in firefox it doenst work.There is a literal to which i am binding data dynamically and i have assigned id's.When i click on menu, i pass id to javascript function to scroll down to that element which is dynamically bound to literal and i change back ground colours.But it doesnt work in FireFOX.
COULD YOU PLEASE HELP?When i try to capture the value of the element,like document .getElemnetById("a"),i get null.The literal is inside a div and literal to bound on runtime with data with Ids to which i ned to navigate.

<script type="text/javascript">
        function Scroll(theElement) {
            var selectedPosX = 0;
            var selectedPosY = 0;
            while (theElement != null) {
                selectedPosX += theElement.offsetLeft;
                selectedPosY += theElement.offsetTop;
                theElement = theElement.offsetParent;
            }
            window.scrollTo(selectedPosX, selectedPosY);

                }

function toggleBgColor(elem) {  
            var styleVal = elem.style;
            styleVal .backgroundColor = styleVal .backgroundColor ? "" : "Green";
        }

        </script>

on menu click-i have something like

<ul>
<li><a id="" href=javascript:Scroll(a);javascript:ScrollToElement(a);"></a></li>

a is the id of the dynamic content am setting up in literal.


could you please help me?

Edited by Ezzaral: Added code tags. Please use them to format any code that you post.

2
Contributors
5
Replies
6
Views
6 Years
Discussion Span
Last Post by Airshow
0

Happi,

Try alert([selectedPosX, selectedPosY]) after the while loop to see what is constructed.

I think you will find that in FF .offsetTop/.offsetLeft return eg. '100px', therefore += will perform string concatenation. If so, then parseInt() will fix it.

function Scroll(theElement) {
    while (theElement != null) {
        selectedPosX += parseInt(theElement.offsetLeft);
        selectedPosY += parseInt(theElement.offsetTop);
        theElement = theElement.offsetParent;
    }
    window.scrollTo(selectedPosX, selectedPosY);
}

Airshow

Edited by Airshow: n/a

0

It doesnt work in FF.The reason being(I got it from error console in FF)-
1.GetSelectedItem is not defined
2.a is not defined.(It comes from thsi code-<ul><li><a id="" href=javascript:Scroll(a);javascript:ScrollToElement(a);"></a></li>)
It doesnt go to jaavscript itself but in IE its too good.
any idea?

0

Happi,

Thinking about this again, the usual way to scroll to a given point in a document is:

<h2>MENU</h2>
<a href="#itemA">Item A</a> | <a href="#itemB">Item B</a>
...
...
<a name="itemA"></a>
...
...
<a name="itemB"></a>
...
...

Is there some reason why you don't do it this way?

Airshow

Edited by Airshow: n/a

0

The reason being dont want to postback.Want to handle it in javascript itself.could figure out of IE but FF is driving me crazy.Tried all my tricks but in vain.

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.