当你按下一个新的href时,typeface.js怎么会不“重写”呢
如果从类中删除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>发布于 2011-07-20 15:32:03
问题是您要删除这些元素,然后再添加它们,但是typeface.js只在页面上运行一次。如果要执行此操作,则需要手动重新触发typeface.js的方法,这可能是:
_typeface_js.initialize(); 在附加元素之后,将这个(或任何方法)放入您的generate_menu方法中。
发布于 2012-03-20 23:25:05
_typeface_js.renderDocument(); http://typeface.neocracy.org/forum/topic.html?id=325
发布于 2011-07-20 15:30:24
单击链接时,必须取消默认事件传播:
.click(function(event){
event.preventDefault();
generate_menu(key);
return false;
});无论您单击菜单链接时执行的是什么代码,浏览器都会转到它们的href,即"#“。
https://stackoverflow.com/questions/6758373
复制相似问题