typeface.js - 不是“重写”

时间:2011-07-20 07:22:23

标签: jquery typeface typeface.js

当您按下新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>

3 个答案:

答案 0 :(得分:1)

问题是你要删除元素然后再添加它们,但是typeface.js只在页面上运行一次。如果你这样做,你需要手动重新触发typeface.js的方法,可能是:

_typeface_js.initialize(); 

在附加元素后,将这个(或者原来的方法)放在generate_menu方法中。

答案 1 :(得分:1)

答案 2 :(得分:-1)

单击链接时,您必须取消默认事件传播:

.click(function(event){
    event.preventDefault();
    generate_menu(key);
    return false;
});

当您点击菜单链接时,无论执行什么代码,浏览器都会转到href,即“#”。