webForumDet fria alternativet

Jumpto-meny

5 svar · 220 visningar · startad av Thomasa

ThomasaMedlem sedan aug. 2002351 inlägg
#1

hej, jag har en sån här jumpmenu funktion från Macromedias dreamweaver, men jag vill knyta ihop den så den kan starta en js-funktion istället för att gå till en url.. någon som kan?


function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}

Det som skrivs nere i bodyn:

<select name="menu2" onChange="MM_jumpMenu('parent',this,0)">
  <option value="#">Välj grupp.</option>
  <option value="void loadScrLyr(0,'lyr2')">LKK Ungd.</option>
  <option value="test.html">LKK Ungd.</option>
</select>

void loadScrLyr(0,'lyr2') går alltså bra att sätt in i en <a href="javascript:... men jag vill att den ska funka i dropdownmenyn..

tack på förhand thomas!

Peter SMedlem sedan dec. 20025 483 inlägg
#2

Hej!

<script type="text/javascript">
<!--

// Definition av loadScrLyr()

function MM_jumpMenu(targ,selObj,restore){ //v3.0
  if (selObj.selectedIndex == 1) eval(selObj[selObj.selectedIndex].value);
  else eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");

  if (restore) selObj.selectedIndex=0;
}

//-->
</script>

...

<select name="menu2" onChange="MM_jumpMenu('parent',this,0)">
  <option value="#">Välj grupp.</option>
  <option value="loadScrLyr(0,'lyr2')">LKK Ungd.</option>
  <option value="test.html">LKK Ungd.</option>
</select>

:)

ThomasaMedlem sedan aug. 2002351 inlägg
#3

tackar och bockar då ska ja testa den! :)

ThomasaMedlem sedan aug. 2002351 inlägg
#4

Hej, det fungerar bra för den första länken jag lägger till, men när ja lägger till en till länk under så fungerar inte den..


<select name="menu2" onChange="MM_jumpMenu('parent',this,0)">
  <option value="#">Välj grupp.</option>  
  <option value="loadScrLyr(0,'w1c1');">Polare</option>
  <option value="loadScrLyr(0,'lyr2');">LKK Ungd.</option> (funkar ej)
</select>

<select name="menu2" onChange="MM_jumpMenu('parent',this,0)">
  <option value="#">Välj grupp.</option>    
<option value="loadScrLyr(0,'lyr2');">LKK Ungd.</option>
  <option value="loadScrLyr(0,'w1c1');">Polare</option>(funkar ej)

</select>

Som du ser ovan så spelar det ingen roll vad som står utan var de sitter, vad kan det vara då?, Webbläsaren säger:

';' Förväntas på denna rad:

 else eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");

nån lösning?

Peter SMedlem sedan dec. 20025 483 inlägg
#5

Hej, igen!

Betrakta följande rad:

if (selObj.selectedIndex == 1) eval(selObj[selObj.selectedIndex].value);

I if-satsen ovan bestämmer ettan (1) vilket val i "select"-elementet som skall evalueras till ett funktionsanrop; i detta fall val nummer två, d.v.s. det andra "option"-elementet. Vill du att fler val i menyn skall agera på samma sätt får du alltså manipulera detta tal.

Ett exempel för din andra kod:

<script type="text/javascript">
<!--

// Definition av loadScrLyr()

function MM_jumpMenu(targ,selObj,restore){ //v3.0
  if (selObj.selectedIndex [b]> 0[/b]) eval(selObj[selObj.selectedIndex].value);
  else eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");

  if (restore) selObj.selectedIndex=0;
}

//-->
</script>

...

<select name="menu2" onChange="MM_jumpMenu('parent',this,0)">
  <option value="#">Välj grupp.</option>
  <option value="loadScrLyr(0,'lyr2')">LKK Ungd.</option>
  <option value="loadScrLyr(0,'w1c1')">LKK Ungd.</option>
</select>

:)

ThomasaMedlem sedan aug. 2002351 inlägg
#6

Jag var lite otydlig i min beskrivning, allt blir så mycket lättare när man förstår vad som står där :) då kommer det att fungera bättre!, tack!

133 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)