当您按下新typeface.js
时,href
如何不“重写”?
如果您从班级中移除typeface-js
,则可以使用。
直播链接:http://temp.electrobeat.dk/typeface.php
function generate_menu(page){
var menu = {
posting : {
title : 'Posting'
},
account : {
title : 'Account'
}
};
var elm = $('#div_menu').empty();
for(var key in menu){
(function(key){
$('<a class="typeface-js menu '+(key == page ? 'menu_active':'')+'" href="#'+key+'">'+menu[key].title+'</a>').appendTo(elm)
.click(function(){
generate_menu(key);
});
})(key);
}
_typeface_js.initialize();
};
代码:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.0/jquery.min.js" type="text/javascript"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.12/jquery-ui.min.js" type="text/javascript"></script>
<script src="typeface-0.15.js" type="text/javascript"></script>
<script src="arial_bold.typeface.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function(){
function generate_menu(page){
var menu = {
posting : {
title : 'Posting'
},
account : {
title : 'Account'
}
};
var elm = $('#div_menu').empty();
for(var key in menu){
(function(key){
$('<a class="typeface-js menu '+(key == page ? 'menu_active':'')+'" href="#'+key+'">'+menu[key].title+'</a>').appendTo(elm)
.click(function(){
generate_menu(key);
});
})(key);
}
};
generate_menu('posting');
});
</script>
<style type="text/css">
#div_menu {
background:#ff0000;
padding:5px;
}
.menu {
font-family:arial;
font-size:14px;
color:#e8f5ff;
font-weight:bold;
border-bottom:3px solid transparent;
text-decoration:none;
padding:1px 2px 2px 2px;
margin:0px 2px 0px 2px;
}
.menu_active {
color:#07447c;
border-bottom:3px solid #e8f5ff;
}
</style>
</head>
<body>
<div id="div_menu"></div>
</body>
</html>
答案 0 :(得分:1)
问题是你要删除元素然后再添加它们,但是typeface.js只在页面上运行一次。如果你这样做,你需要手动重新触发typeface.js的方法,可能是:
_typeface_js.initialize();
在附加元素后,将这个(或者原来的方法)放在generate_menu方法中。
答案 1 :(得分:1)
_typeface_js.renderDocument();
答案 2 :(得分:-1)
单击链接时,您必须取消默认事件传播:
.click(function(event){
event.preventDefault();
generate_menu(key);
return false;
});
当您点击菜单链接时,无论执行什么代码,浏览器都会转到href
,即“#”。