Sorry I can't be more specific Norbert, I'm at work and have limited time. Check out the "Trigger" event for jQuery: http://docs.jquery.com/Events/trigger
Looks like you could listen for a click on the 'li' then trigger a click on the child 'a' tag without worrying about extracting the target or href. On Nov 10, 4:43 pm, norbi <norbe...@post.pl> wrote: > Hello everybody > > It is my first post here I guess. I must say - I love jQuery, thank > you ! > A few days ago I faced a problem that I cannot overcome and hope you > can help me. In the group archive I saw similar problem, but solved in > the way I have it solved, which is not sufficient for me right now. > > I have a menu, which contains links within <li> elements. > I want JS to "click" on the real link whenever user clicks on the li > element, but can't do that due to propagation. > As one said there is a solution - catch attr("href") and use > window.location.href ... that's workaround I used until now. But what > if your link has target defined, causing new page to be opened in new > window? That's the problem I faced and window.location.href is no > longer correct solution here. > > At this moment, in case o QV Report (below), instead of clicking on > the <li> "button" user have to click on the link. This would open new > page or new tab depends on browser configuration. If I remove > e.stopPropagation() from onclick event then click causes infinite > loop. > > Here is my HTML code, simplified > > <ol id="menu_ma" > > <li ><a href="index.php" class="menulink">Home</a></li> > <li ><a href="assets.php" class="menulink" >Assets</a></li> > <li ><a class='menulink' href='aaaaa.php' target='_blank'>QV Report</ > a></li> > </ol> > > and js code > > $("#menu_ma a") > .click(function(e){ > $(this) > .closest("li.ui-selectee").addClass("ui- > selected") > .siblings().removeClass("ui-selected"); > > e.stopPropagation(); > }) > $("#menu_ma li") > .hover( > function(){ > $(this).addClass("ui-state-highlight cursor-pointer"); > }, > function(){ > $(this).removeClass("ui-state-highlight > cursor-pointer"); > }) > .click(function(e){ > link=$(this).find("a").attr("href"); > if(link!=undefined){ > var me = $(this); > var target = me.find("a").attr("target"); > if( me.find("a").attr("target")!= "_blank") > window.location.href=link; > else{ > me.find("a").trigger("click"); > } > } > > }) > > As you see when <li> is clicked I trigger the click on <a> ... but > this propagates again on <li> causing loop. > I stopped the propagation but then "click" doeasn't work. I don't know > how to solve this, but believe that there must be a solution or maybe > different approach. If you have any ideas I will appreciate your > comments. > > Best regards > Norbert