2010-03-10 6 views
0

Проблема: Создание очень простого переключателя стиля с js (без встроенной обработки событий). Это, вероятно, легко сделать. Однако я запутался в обработке нескольких событий onclick и просто подтолкнул все к inline. Кто-нибудь знает, как обрабатывать несколько событий onclick?onclick обработка нескольких событий для внешнего javascript

код 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> 

Внешние JS до сих пор

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"; 
} 

ответ

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

Например:

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: Если я не я не понимание вопроса. Мой мозг жарился, когда я смотрел на код весь день

Смежные вопросы