使用jquery也算有段时间了,见识到了它的强大。并且也使用到了JQuery的各种属性和方法。但最近接触到了一个本人觉得比较生僻的方法:data
data方法其实跟jquery的其他常用方法一样,都有$obj.xx("属性名", 属性值)——为$obj对象的某属性赋值;$obj.xx("属性名")——获取$obj对象某属性的值。只是data我用的比较少,而且不太知道它的使用场景。但最近对于一个需求,需要用同一个按钮,每次点击就触发相应的不同的事件。用到了data,而我也熟悉了一下:
<input id="btn" type="button" value="data按钮测试"/>
先看下面的代码:
<script> $(function() { $("#btn").bind("click", function(e){ var flag = false; if(flag) { alert("非全屏"); flag = false; }else{ alert("全屏"); flag = true; } }); }); </script>
看这段代码。是想在页面默认加载的时候,点击按钮弹出“全屏”,再点按钮就弹出"非全屏",再点击按钮弹出"全屏",如此反复“切换”。但是发现无论怎么点击,一直弹出的是"全屏",根本没有达到“切换”的效果!
究其原因:每次点击按钮,都会经过var flag = false;这段代码, flag的值每次在点击的时候都会被赋值为false,造成每次都进入false分支。这时候就需要用到data了。
我们希望给该按钮绑定一个属性,来记录当前的点击状态。这时候,data方法就派上用场啦。修改为:
<script> $(function() { $("#btn").bind("click", function(e){ var flag = $(this).data("flag"); if(flag) { alert("非全屏"); $(this).data("flag", false); }else{ alert("全屏"); $(this).data("flag", true); } }); }); </script>
这样,“首次”点击按钮时,弹出默认的逻辑,(这里假设是弹出"全屏"),再次点击,弹出"非全屏";再点击,弹出"全屏",如此"反复切换"……达到了我们想要的"切换"效果。
仔细分析这段代码:当首次点击该按钮时,运行到var flag = $(this).data("flag");处时,flag为undefiend,因为此时你还未给该按钮$(this)绑定属性flag.所以根据undefiend会直接进入else分支,弹出"全屏"。并且给按钮绑定了一个属性flag,并赋值为true。第二次点击时,运行到var flag = $(this).data("flag");处时,flag为第一次你绑定的值true了,所以它会进入if分支,弹出"非全屏",并给其flag属性赋值为false;第三次点击按钮时,运行到var flag = $(this).data("flag")时值为false,进入else分支弹出"全屏"并把flag属性的值更改为true,等你"下一次"点击时,又进入if分支……如此反复。
1)总之, data方法跟jquery其他的常见方法如html text 等一样,具有重载的函数。1个参数表明取值,2个参数表明赋值。而data是用于给某个jquery对象绑定属性的;
2)运用data方法,可以切换JQuery对象某属性的属性值,达到一些改变对象不同状态,同时根据不同状态运行不同逻辑的效果!
3)data方法还可以达到判断是否是第一次的效果,每次都取值,如果取不到,就表明是第一次,就赋值。这点跟ServletContext一样可以达到判断是否是第一次的作用~~~
相关推荐
接下来,我们将深入探讨jQuery中的Promise具体使用方法。 首先,要理解jQuery的Promise,需要先了解JavaScript中的Promise对象。Promise是ES6中引入的特性,用于处理异步操作,它代表了一个尚未完成但预期会完成的...
其次详细讲解了jQuery的各种选择器、jQuery操作DOM的方法、jQuery中的事件与应用、jQuery中的动画和特效、Ajax在jQuery中的应用,以及各种常用的jQuery插件的使用方法和技巧,所有这些知识点都配有完整的示例(包括...
jQuery 提供了一系列方法来操作元素的属性和样式,如 `.attr()` 和 `.css()`,以及 `.data()` 方法用于存储和检索数据。此外,事件处理是 jQuery 的强项,`.on()` 方法可以方便地绑定和解绑事件,`.event()` 对象则...
**jQuery Mobile 入门练习项目** jQuery Mobile 是一个...通过这个入门练习项目,你将建立起对 jQuery Mobile 的基本认识,为进一步开发复杂的移动应用打下坚实的基础。不断实践和探索,你会发现这个框架的强大之处。
jQuery Mobile 使用 `data-rel` 属性进行页面间的导航。例如,添加一个链接到 "about" 页面: ```html <a href="#about" data-rel="page">关于 ``` ### 四、jQuery Mobile 组件 1. **按钮(Buttons)**:通过 `...
**jQuery学习一** jQuery是一个广泛使用的JavaScript库,它极大地简化了HTML文档遍历、事件处理、...通过以上内容,你应该对jQuery有了初步的认识。继续深入学习,你将能更好地利用这个强大的库来提升Web开发效率。
jQuery库提供了多种实现自动补全功能的方法,其中一种常见的方式是使用jQuery UI中的Autocomplete组件。本篇文章将深入探讨jQuery自动补全的例子,帮助开发者理解和应用这一功能。 首先,让我们了解jQuery ...
接下来,使用jQuery的$(data)将Document对象包装成jQuery对象,以便使用jQuery提供的丰富方法来操作XML文档。我们调用了.find('book')方法来选择所有id属性的book节点,并通过.each函数遍历这些节点。 在遍历过程中...
本文将深入探讨 jQuery Pagination 插件的工作原理、使用方法以及如何自定义样式,帮助你更好地理解和应用这个工具。 首先,了解 jQuery Pagination 的基本概念。分页主要包含两个关键部分:前端展示和后端处理。...
通过以上介绍,你应该对jQuery Mobile有了初步认识。在实际项目中,结合具体需求和这些基本知识点,你可以快速构建出符合移动设备特性的Web应用。记得实践是检验真理的唯一标准,动手尝试编写你的第一个jQuery ...
10.2 处理选择器中的不规范元素标志 10.2.1 选择器中含有特殊符号 10.2.2 选择器中含有空格符号 10.3 优化事件中的冒泡现象 10.4 使用data()方法缓存数据 10.5 解决jquery库与其他库的冲突 ...
通过以上内容,相信你对jQuery有了初步的认识。实践是检验真理的唯一标准,动手尝试编写jQuery代码,结合实际项目,你将更快地掌握这个强大的库。记得,jQuery的魅力在于其高效性和易用性,希望你能享受编程的乐趣。
在实际项目中,我们可能需要结合其他库或工具,如Bootstrap的`form-group`和`form-control`类来美化表单元素,或者使用Ajax库如Axios或jQuery自身的Ajax方法来异步提交用户选择的数据。 例如,使用Ajax更新服务器上...
4. **兼容性与性能优化**: jQuery处理了浏览器差异,但过度使用可能导致性能下降,合理选择原生JavaScript方法或使用`.on()`代替事件委托可优化性能。 ## 四、学习资源与实践 1. **官方文档**: jQuery的官方文档...
jQuery 的事件处理更加简单,可以使用 `on()` 方法绑定事件。例如,为按钮添加点击事件: ```javascript $("#myButton").on("click", function() { alert("按钮被点击了!"); }); ``` ### 5. 动画效果 jQuery 的...
- 使用`.fn.extend()`方法添加新的方法到jQuery对象上。 - 利用`this`关键字在方法内引用当前选中的元素。 ### 七、源代码学习 在压缩包中,每个文件都是一个独立的jQuery实例,涵盖了上述各种功能的使用。通过...
3. 使用表单:jQuery Mobile会自动增强表单元素,如`<input type="text" data-mini="true">`,添加"data-mini"可创建小型输入框。 4. 定制主题:通过"data-theme"属性,可以指定组件的颜色主题,实现界面风格统一。 ...
#### 三、jQuery EasyUI 使用方法 ##### 3.1 引入 EasyUI 要在项目中使用 EasyUI,首先需要在 HTML 文件中引入 jQuery 和 EasyUI 的 CSS 及 JavaScript 文件: ```html <script src="jquery.min.js"> ...
通过以上介绍,你应该对 jQuery 的基本使用有了初步认识。在进一步学习过程中,可以结合提供的"jquery学习"资源,进行实践操作,加深理解。记住,实践是检验真理的唯一标准,多写代码,多尝试,才能更好地掌握 ...
- **工具栏**:介绍了jQuery Mobile中工具栏组件的使用方法及其定制选项。 综上所述,《jQuery Mobile》这本书不仅全面覆盖了jQuery Mobile框架的核心概念和技术细节,还通过丰富的实例帮助读者快速掌握开发技巧。...