2010-03-10 3 views
0

Le problème: rendant un sélecteur de style très simple avec js (sans manipulation d'événement en ligne). C'est probablement facile à faire. Je me suis toutefois confus avec la gestion de plusieurs événements onclick et je n'ai fait que tout propulser en ligne. Quelqu'un sait comment gérer plusieurs événements onclick?onclick gestion des événements multiples pour javascript externe

Le Html:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" lang="en"> 
<head><title>page 2</title> 
<meta http-equiv="Content-type" content="text/html; charset=utf-8" /> 

<link rel="stylesheet" id="style" type="text/css" href="style.css" /> 
<script type="text/javascript" src="switcher.js"></script> 
</head> 
<body> 
<h1>page 2</h1> 
<hr/> 
<div id="nav"> 
<ul id="pages"> 
<li><a href="#" id="style1" onclick="style_one()" >Style 1</a></li> 
<li><a href="#" id="style2" onclick="style_two()">Style 2</a></li> 
<li><a href="#" id="style3" onclick="style_three()" >Style 3</a></li> 
<li><a href="page3.htm">Page 3</a></li> 
</ul> 
<ul id="logout"> 
<li><a href="login.htm">Log Out</a></li> 
</ul> 
</div> 
<hr/> 
</body> 
</html> 

Les JS externes jusqu'à présent

function style_one() 
{ 
document.getElementById("style").href="style1.css"; 
} 

function style_two() 
{ 
document.getElementById("style").href="style2.css"; 
} 

function style_three() 
{ 
document.getElementById("style").href="style3.css"; 
} 

Répondre

1
if (element.addEventListener) // most browsers 
    element.addEventListener(eventName, listener, true); 
else if (element.attachEvent) // IE 
    element.attachEvent('on' + eventName, listener); 

Par exemple:

function addDomListener: function(element, eventName, listener) { 
    if (element.addEventListener) // most browsers 
     element.addEventListener(eventName, listener, true); 
    else if (element.attachEvent) // IE 
     element.attachEvent('on' + eventName, listener); 
} 
addDomListener(document.getElementById("style"), "click", function() { 
    //Handle onclick #1 
}); 
addDomListener(document.getElementById("style"), "click", function() { 
    //Handle onclick #2 
}); 

Edit: À moins que je ne comprends pas la question. ..Mon cerveau est frit comme je l'ai regardé code toute la journée