知问前端——按钮UI

   按钮(button),可以给生硬的原生按钮或者文本提供更多丰富多彩的外观。它不单单可以设置按钮或文本,还可以设置单选按钮和多选按钮。

   使用button按钮

   使用button按钮UI的时候,不一定必须是input按钮形式,普通的文本也可以设置成button按钮。

$('#search_button').button();

   修改button样式

   在弹出的button对话框中,在火狐浏览器中打开Firebug或者右击->查看元素。这样,我们可以看看button的样式,根据样式进行修改。我们为了和网站主题符合,对dialog的标题背景进行修改。

   无须修改ui里的CSS,直接用style.css替代掉:

/* 按钮正常状态的背景 */
.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default {
    background:url(img/ui_header_bg.png);
}
/* 按钮点击状态的背景 */
.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active {
    background:url(img/ui_white.png);
}

   button()方法的属性

   按钮方法有两种形式:

   1.button(options),options是以对象键值对的形式传参,每个键值对表示一个选项

   2.button('action', param),action是操作对话框方法的字符串,param则是options的某个选项。

   Button按钮选项

属性 默认值/类型 说明
disabled false/布尔值 默认为false,设置为true时,按钮是非激活的
label 无/字符串 对应按钮上的文字。如果没有,HTML内容将被作为按钮的文字
icons 无/字符串 对应按钮上的图标。 在按钮文字前面和后面都可以放置一个图标,通过对象键值对的方式完成:
{
  primary : 'ui-icon-search',
  secondary : 'ui-icon-search'
}
text true/布尔值 当时设置为false时,不会显示文字,但必须指定一个图标

   index.html:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>知问前端</title>
    <script type="text/javascript" src="jquery-1.12.3.js"></script>
    <script type="text/javascript" src="jquery-ui.js"></script>
    <script type="text/javascript" src="index.js"></script>
    <link rel="shortcut icon" type="image/x-icon" href="img/favicon.ico" />
    <link rel="stylesheet" type="text/css" href="jquery-ui.css" />
    <link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
    <div id="header">
        <div class="header_main">
            <h1>知问</h1>
            <div class="header_search">
                <input type="text" name="search" class="search" />
            </div>
            <div class="header_button">
                <input type="button" value="查询" id="search_button" />
            </div>
            <div class="header_member">
                <a href="###" id="reg_a">注册</a> | <a href="###" id="login_a">登录</a>
            </div>
        </div>
    </div>
    
</body>
</html>

   jQuery代码:

$("#search_button").button({
    disabled:true, //disabled设为true,按钮是非激活状态的
    label:"搜索", //对应按钮上的文字
});

   如果要使用icons属性,那么index.html中按钮必须修改为:

<button id="search_button">查询</button>

   jQuery代码:

$("#search_button").button({
    icons:{
      primary:"ui-icon-search",
      //secondary:"ui-icon-triangle-1-s"
    },
    text:false
});

   注意:button的事件方法,只有一个:create,当创建button时调用。

   button('action',param)

   button('action',param)方法能设置和获取按钮,action表示指定操作的方式。

   button('action',param)方法

方法 返回值 说明
button('disabled') jQuery对象 禁用按钮
button('enable') jQuery对象 启用按钮
button('destroy') jQuery对象 删除按钮,直接阻断了button
button('refresh') jQuery对象 更新按钮布局
button('widget') jQuery对象 获取对话框的jQuery对象
button('options',param) 一般值 获取options属性的值
button('options',param,value) jQuery对象 设置options属性的值

   禁用按钮:

$("#search_button").button("disable");

   启用按钮:

$("#search_button").button("enable");

   删除按钮:

$("#search_button").button("destroy"); //变成普通按钮

   更新按钮,刷新按钮:

$("#search_button").button("refresh"); //感觉没什么鸟用

   得到button的jQuery对象(与dialog类似):

alert($("#search_button").button("widget"));

   得到button的options值:

alert($("#search_button").button("option","label"));//查询 

   设置button的options值:

$("#search_button").button("option","label","搜索");

   注意:对于UI上自带的按钮,比如dialog上的,我们可以通过Firebug查找得到jQuery对象。

   index.html:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>知问前端</title>
    <script type="text/javascript" src="jquery-1.12.3.js"></script>
    <script type="text/javascript" src="jquery-ui.js"></script>
    <script type="text/javascript" src="index.js"></script>
    <link rel="shortcut icon" type="image/x-icon" href="img/favicon.ico" />
    <link rel="stylesheet" type="text/css" href="jquery-ui.css" />
    <link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
    <div id="header">
        <div class="header_main">
            <h1>知问</h1>
            <div class="header_search">
                <input type="text" name="search" class="search" />
            </div>
            <div class="header_button">
                <button id="search_button">查询</button>
            </div>
            <div class="header_member">
                <a href="###" id="reg_a">注册</a> | <a href="###" id="login_a">登录</a>
            </div>
        </div>
    </div>
    
    <div id="reg" title="会员注册">
   
    </div>

</body>
</html>

   jQuery代码:

$("#search_button").button({
    icons:{
        primary:"ui-icon-search",
      //secondary:"ui-icon-triangle-1-s"
    }
});
$("#reg").dialog({
    buttons:{
        '提交':function() {

        }
    }
});

   如何禁用对话框中的“提交按钮”?

alert($("#reg").parent().find("button").length); //2
alert($("#reg").parent().find("button").eq(1).html()); //<span class="ui-button-text">提交</span>
$("#reg").parent().find("button").eq(1).button("disable");

   或者

$("#reg").dialog("widget").find("button").eq(1).button("disable");

   单选框、复选框

   button按钮不但可以设置普通的按钮,对于单选框、复选框同样有效。

   1、html单选框

   index.html:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>知问前端</title>
    <script type="text/javascript" src="jquery-1.12.3.js"></script>
    <script type="text/javascript" src="jquery-ui.js"></script>
    <script type="text/javascript" src="index.js"></script>
    <link rel="shortcut icon" type="image/x-icon" href="img/favicon.ico" />
    <link rel="stylesheet" type="text/css" href="jquery-ui.css" />
    <link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
    <div id="header">
        <div class="header_main">
            <h1>知问</h1>
            <div class="header_search">
                <input type="text" name="search" class="search" />
            </div>
            <div class="header_button">
                <!-- <input type="button" value="查询" id="search_button" /> -->
                <button id="search_button">查询</button>
            </div>
            <div class="header_member">
                <a href="###" id="reg_a">注册</a> | <a href="###" id="login_a">登录</a>
            </div>
        </div>
    </div>
    
    <div id="reg" title="会员注册">
        <input type="radio" name="sex" value="male" id="male"><label for="male"></label></input>
        <input type="radio" name="sex" value="female" id="female"><label for="female"></label></input>
    </div>

</body>
</html>

   jQuery代码:

$("#reg input[type=radio]").button(); //按钮之间还是有空隙的

   或

$("#reg").buttonset(); //无空隙

   2、html复选框

   index.html:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>知问前端</title>
    <script type="text/javascript" src="jquery-1.12.3.js"></script>
    <script type="text/javascript" src="jquery-ui.js"></script>
    <script type="text/javascript" src="index.js"></script>
    <link rel="shortcut icon" type="image/x-icon" href="img/favicon.ico" />
    <link rel="stylesheet" type="text/css" href="jquery-ui.css" />
    <link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
    <div id="header">
        <div class="header_main">
            <h1>知问</h1>
            <div class="header_search">
                <input type="text" name="search" class="search" />
            </div>
            <div class="header_button">
                <!-- <input type="button" value="查询" id="search_button" /> -->
                <button id="search_button">查询</button>
            </div>
            <div class="header_member">
                <a href="###" id="reg_a">注册</a> | <a href="###" id="login_a">登录</a>
            </div>
        </div>
    </div>
    
    <div id="reg" title="会员注册">
        <input type="checkbox" name="color" value="red" id="red"><label for="red"></label></input>
        <input type="checkbox" name="color" value="yellow" id="yellow"><label for="yellow"></label></input>
        <input type="checkbox" name="color" value="green" id="green"><label for="green">绿</label></input>
        <input type="checkbox" name="color" value="orange" id="orange"><label for="orange"></label></input>
    </div>

</body>
</html>

   jQuery代码:

$("#reg input[type=checkbox]").button(); //按钮之间还是有空隙的

   或

$("#reg").buttonset(); //无空隙

 

posted @ 2016-04-29 16:08  叶十一少  阅读(1123)  评论(0编辑  收藏  举报