《jQuery、jQuery UI及jQuery Mobile技巧与示例》——7.3 技巧:将元素转换为按钮微件

7.3 技巧:将元素转换为按钮微件

一般情况下,HTML提供了多种方法创建看似按钮的元素,甚至不使用CSS样式或JavaScript。回想一下,比如button元素、类型为button和submit的输入框。

通过结合CSS和JavaScript,任何元素都可以做成如按钮一样的外观。代码清单7-3演示了jQuery UI如何帮助你创建按钮。

代码清单7-3 选取一列元素并装饰成按钮

00 <!DOCTYPE html>
01
02 <html lang="en">
03 <head>
04  <title>jQuery UI Button</title>
05  <link type="text/css" rel="stylesheet" href=
06   "http://code.jquery.com/ui/1.8.16/themes/base/jquery-ui.css">
07 </head>
08 <body>
09
10 <div id="target">
11  <button>My button</button>
12  <input type="submit" id="my-submit" value="My submit">
13  <a href="http://www.google.com">My link</a>
14  <p>
15   My paragraph
16  </p>
17  <ul>
18   <li>My unordered list</li>
19   <li>This might not be the best idea . . . </li>
20  </ul>
21 </div>
22
23 <script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
24 <script src="http://code.jquery.com/ui/1.8.16/jquery-ui.min.js">
25 </script>
26
27 <script>
28 // 请将下列代码移至一个外部的.js文件中
29 $(document).ready(function() {
30 
31  $('#target')
32   .children()
33   .button()
34   .click(function() {
35      alert($(this).html());
36    });
37 
38 });
39 </script>
40 </body>
41 </html>

在这个列表中,第11~20行是一组不同类型的HTML元素。当应用了第31~36行的代码后,所有元素都装饰成按钮而且看起来大致相似。

7.3.1 为按钮元素添加样式
如果想使用自定义的CSS样式,那么在按钮生成后,可以使用下面的HTML结构:

<div id="target">
 <button class="ui-button ui-widget ui-state-default ui-corner-all
    ui-button-text-only" role="button" aria-disabled="false">|
  <span class="ui-button-text">My button</span>
 </button>
 <input type="submit" id="my-submit" value="My submit"
   class="ui-button ui-widget ui-state-default ui-corner-all"
   role="button" aria-disabled="false">
 <a href=http://www.google.com
   class="ui-button ui-widget ui-state-default ui-corner-all
   ui-button-text-only" role="button" >
   <span class="ui-button-text"> My link</span>
 </a>
 <p class="ui-button ui-widget ui-state-default ui-corner-all
   ui-button-text-only" role="button">
   <span class="ui-button-text">
   My paragraph
   </span>
 </p>
 <ul class="ui-button ui-widget ui-state-default ui-corner-all
   ui-button-text-only" role="button">
  <span class="ui-button-text">
    <li>My unordered list</li>
    <li>This might not be the best idea. . .</li>
  </span>
 </ul>
</div>

按钮组件添加了许多类,它们可用于定义样式或复用现有的主题。此外,还会嵌套附加的span标签来包裹按钮组件的内容。

当用户与按钮进行交互时,按钮会获取临时附加的类:ui-state-hover、ui-state-active、ui-state-disabled和ui-button-disabled。

7.3.2 设置按钮的选项
disabled选项已经在前一章中讨论过。但是,尤其是在按钮的上下文中,该选项还是值得重复讨论的,因为禁用按钮元素要比禁用可拖曳元素频繁得多。以下示例演示了如何禁用按钮,如何在按钮上显示图标,以及如何更改按钮的文字。

禁用按钮:

$('button').button({ disabled: true});
在按钮上显示两个图标,取代文字:

$('button').button({
   text: false,
   icons: {
    primary:'ui-icon-signal',
    secondary:'ui-icon-signal-diag'}
});

将按钮的文字更改为指定的值:

$('button').button({ label: 'Say something different'});
7.3.3 捕获按钮的事件
就像其他微件一样,按钮的事件处理可在创建过程和初始化过程中完成。下面的代码片段举例说明了如何处理按钮的事件。

当一个新的按钮初始化时,处理事件:

$('button').button({create: function(event, ui) {
   // 事件处理
}});
//或
$('button')
 .on('buttoncreate', function(event, ui) {
   // 事件处理
 })
 .button();

你可能会惊讶在这里没有找到其他的事件。事实上,按钮上最重要的事件就是click。由于click事件已经存在于所有的HTML元素,所以jQuery UI框架就没必要重新创建它。

7.3.4 调用按钮的方法
按钮微件的可用方法与本章开头讲到的折叠菜单微件以及在第6章讲到的可拖曳组件的方法是相似的。我建议你参考这些章节中关于destroy、disable、enable、option和widget的详细介绍。

基于页面的当前状态的按钮要手动刷新:

$('button').button('refresh');

时间: 2024-10-02 15:54:56

《jQuery、jQuery UI及jQuery Mobile技巧与示例》——7.3 技巧:将元素转换为按钮微件的相关文章

JS,Jquery获取select,dropdownlist,checkbox下拉列表框的值(示例代码)_javascript技巧

jQuery获取Select选择的Text和Value: 语法解释: 1. $("#select_id").change(function(){//code...});   //为Select添加事件,当选择其中一项时触发 2. var checkText=$("#select_id").find("option:selected").text();  //获取Select选择的Text 3. var checkValue=$("#se

JS和Jquery获取和修改label的值的示例代码_javascript技巧

获取值: label标签在JS和Jquery中使用不能像其他标签一样用value获取它的值: 复制代码 代码如下: var label=document.getElementById("id"); var value=label.value; var value=$("#id").val(); 可以这样: JS: 复制代码 代码如下: var label=document.getElementById("id"); var value=label

asp.net使用jQuery获取RadioButtonList成员选中内容和值示例_实用技巧

复制代码 代码如下: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Web.Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.o

《jQuery、jQuery UI及jQuery Mobile技巧与示例》——7.6 技巧:使用对话框微件引起注意

7.6 技巧:使用对话框微件引起注意 如果想使网页中的一小部分内容脱颖而出,有几种方法可以实现它.其中一个方法是用对话框的形式显示内容.jQuery UI提供了这样一个对话框组件(dialog).代码清单7-6演示了如何从一个常见的段落元素创建对话框. 代码清单7-6 将段落元素转换为对话框 00 <!DOCTYPE html> 01 02 <html lang="en"> 03 <head> 04 <title>jQuery UI Di

《jQuery、jQuery UI及jQuery Mobile技巧与示例》——7.8 技巧:使用滑块微件获取数字

7.8 技巧:使用滑块微件获取数字 在客户端应用程序中,你有时会发现滑块用做输入数字的元素.滑块的优点是,它比数字输入框更可视化和更直观. 代码清单7-8展示了如何将div改成滑块(slider)微件. 代码清单7-8 将 元素转换为滑块并显示其值 00 <!DOCTYPE html> 01 02 <html lang="en"> 03 <head> 04 <title>jQuery UI Slider</title> 05

《jQuery、jQuery UI及jQuery Mobile技巧与示例》——7.5 技巧:使用日历微件选择日期

7.5 技巧:使用日历微件选择日期 在HTML5之前,在Web页面中选择日期是很痛苦的.甚至支持了HTML5的浏览器中仍有一些不能提供一个好用的日历. 代码清单7-5展示了jQuery UI提供的datepicker,它可以用于传统的输入框. 代码清单7-5 帮助网站用户输入日期 00 <!DOCTYPE html> 01 02 <html lang="en"> 03 <head> 04 <title>jQuery UI Datepick

《jQuery、jQuery UI及jQuery Mobile技巧与示例》——7.2 技巧:使用自动补全微件提示输入值

7.2 技巧:使用自动补全微件提示输入值 在一些网站上,你可以找到用于选择的下拉菜单,它们包含了极长的选项列表.在许多情况下,可以使用具有自动补全功能的输入框取代下拉式菜单来帮助用户.省去了滚动选择,用户只要输入目标选项的第一个字符,然后自动补全组件便可以完成剩下的事. 代码清单7-2提供了一个自动补全的例子,它使用一段称为"Lorem Ipsum"的文字来实现输入第一个字后的补全.这段文字起源于两千年前,但仍然使用在图形设计和排版行业(通常被称为"假文"或&quo

《jQuery、jQuery UI及jQuery Mobile技巧与示例》——7.7 技巧:使用进度条微件显示进程的状态

7.7 技巧:使用进度条微件显示进程的状态 当Web应用程序执行一个动作的持续时间超过大约两秒钟时,为用户显示动作状态是一个很好的做法.如果不知道动作的状态,通常会改变鼠标光标或显示一个旋转的效果. 在某些情况下,你能知道进程的进度.在这种情况下,最好尽可能准确地满足用户的期待.代码清单7-7介绍了jQuery UI的进度条(progressbar),可以使用它实现这样的目的. 代码清单7-7 将一个 元素转换为进度条 00 <!DOCTYPE html> 01 02 <html lan

《jQuery、jQuery UI及jQuery Mobile技巧与示例》——7.4 示例:使用按钮集装饰单选框

7.4 示例:使用按钮集装饰单选框 除了button,jQuery UI还提供了buttonset(按钮集).代码清单7-4演示了如何使用buttonset将一组单选框装饰成普通按钮的样式,其中每次只能选中一个按钮. 代码清单7-4 装饰一组单选框 00 <!DOCTYPE html> 01 02 <html lang="en"> 03 <head> 04 <title>jQuery UI Radio</title> 05 &