`
Everyday都不同
  • 浏览: 723589 次
  • 性别: Icon_minigender_1
  • 来自: 宇宙
社区版块
存档分类
最新评论

jquery之data方法的 认识vs使用

阅读更多

使用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一样可以达到判断是否是第一次的作用~~~

 

1
2
分享到:
评论

相关推荐

    认识jQuery的Promise的具体使用方法

    接下来,我们将深入探讨jQuery中的Promise具体使用方法。 首先,要理解jQuery的Promise,需要先了解JavaScript中的Promise对象。Promise是ES6中引入的特性,用于处理异步操作,它代表了一个尚未完成但预期会完成的...

    jQuery权威指南-源代码

    其次详细讲解了jQuery的各种选择器、jQuery操作DOM的方法、jQuery中的事件与应用、jQuery中的动画和特效、Ajax在jQuery中的应用,以及各种常用的jQuery插件的使用方法和技巧,所有这些知识点都配有完整的示例(包括...

    开始认识jQuery.pdf

    jQuery 提供了一系列方法来操作元素的属性和样式,如 `.attr()` 和 `.css()`,以及 `.data()` 方法用于存储和检索数据。此外,事件处理是 jQuery 的强项,`.on()` 方法可以方便地绑定和解绑事件,`.event()` 对象则...

    jqueryMobile入门练习项目

    **jQuery Mobile 入门练习项目** jQuery Mobile 是一个...通过这个入门练习项目,你将建立起对 jQuery Mobile 的基本认识,为进一步开发复杂的移动应用打下坚实的基础。不断实践和探索,你会发现这个框架的强大之处。

    jquery mobile 简明 教程 demo 移动 开发

    jQuery Mobile 使用 `data-rel` 属性进行页面间的导航。例如,添加一个链接到 "about" 页面: ```html &lt;a href="#about" data-rel="page"&gt;关于 ``` ### 四、jQuery Mobile 组件 1. **按钮(Buttons)**:通过 `...

    jquery学习一

    **jQuery学习一** jQuery是一个广泛使用的JavaScript库,它极大地简化了HTML文档遍历、事件处理、...通过以上内容,你应该对jQuery有了初步的认识。继续深入学习,你将能更好地利用这个强大的库来提升Web开发效率。

    jquery自动补全例子

    jQuery库提供了多种实现自动补全功能的方法,其中一种常见的方式是使用jQuery UI中的Autocomplete组件。本篇文章将深入探讨jQuery自动补全的例子,帮助开发者理解和应用这一功能。 首先,让我们了解jQuery ...

    使用jquery解析XML的方法

    接下来,使用jQuery的$(data)将Document对象包装成jQuery对象,以便使用jQuery提供的丰富方法来操作XML文档。我们调用了.find('book')方法来选择所有id属性的book节点,并通过.each函数遍历这些节点。 在遍历过程中...

    jquery pagination 分页

    本文将深入探讨 jQuery Pagination 插件的工作原理、使用方法以及如何自定义样式,帮助你更好地理解和应用这个工具。 首先,了解 jQuery Pagination 的基本概念。分页主要包含两个关键部分:前端展示和后端处理。...

    jquery mobile快速入门 例子

    通过以上介绍,你应该对jQuery Mobile有了初步认识。在实际项目中,结合具体需求和这些基本知识点,你可以快速构建出符合移动设备特性的Web应用。记得实践是检验真理的唯一标准,动手尝试编写你的第一个jQuery ...

    jQuery权威指南366页完整版pdf和源码打包

    10.2 处理选择器中的不规范元素标志 10.2.1 选择器中含有特殊符号 10.2.2 选择器中含有空格符号 10.3 优化事件中的冒泡现象 10.4 使用data()方法缓存数据 10.5 解决jquery库与其他库的冲突 ...

    jquery入门的例子

    通过以上内容,相信你对jQuery有了初步的认识。实践是检验真理的唯一标准,动手尝试编写jQuery代码,结合实际项目,你将更快地掌握这个强大的库。记得,jQuery的魅力在于其高效性和易用性,希望你能享受编程的乐趣。

    jquery 绑定单选框、复选框、下拉框

    在实际项目中,我们可能需要结合其他库或工具,如Bootstrap的`form-group`和`form-control`类来美化表单元素,或者使用Ajax库如Axios或jQuery自身的Ajax方法来异步提交用户选择的数据。 例如,使用Ajax更新服务器上...

    jquery教程

    4. **兼容性与性能优化**: jQuery处理了浏览器差异,但过度使用可能导致性能下降,合理选择原生JavaScript方法或使用`.on()`代替事件委托可优化性能。 ## 四、学习资源与实践 1. **官方文档**: jQuery的官方文档...

    jquery入门

    jQuery 的事件处理更加简单,可以使用 `on()` 方法绑定事件。例如,为按钮添加点击事件: ```javascript $("#myButton").on("click", function() { alert("按钮被点击了!"); }); ``` ### 5. 动画效果 jQuery 的...

    jQuery初学实例代码集

    - 使用`.fn.extend()`方法添加新的方法到jQuery对象上。 - 利用`this`关键字在方法内引用当前选中的元素。 ### 七、源代码学习 在压缩包中,每个文件都是一个独立的jQuery实例,涵盖了上述各种功能的使用。通过...

    jquery.mobile-1.0

    3. 使用表单:jQuery Mobile会自动增强表单元素,如`&lt;input type="text" data-mini="true"&gt;`,添加"data-mini"可创建小型输入框。 4. 定制主题:通过"data-theme"属性,可以指定组件的颜色主题,实现界面风格统一。 ...

    jquery easyui API文档

    #### 三、jQuery EasyUI 使用方法 ##### 3.1 引入 EasyUI 要在项目中使用 EasyUI,首先需要在 HTML 文件中引入 jQuery 和 EasyUI 的 CSS 及 JavaScript 文件: ```html &lt;script src="jquery.min.js"&gt; ...

    简单易用的jquery入门学习

    通过以上介绍,你应该对 jQuery 的基本使用有了初步认识。在进一步学习过程中,可以结合提供的"jquery学习"资源,进行实践操作,加深理解。记住,实践是检验真理的唯一标准,多写代码,多尝试,才能更好地掌握 ...

    [jQuery移动开发].(jQuery.Mobile).Jon.Reid.文字版

    - **工具栏**:介绍了jQuery Mobile中工具栏组件的使用方法及其定制选项。 综上所述,《jQuery Mobile》这本书不仅全面覆盖了jQuery Mobile框架的核心概念和技术细节,还通过丰富的实例帮助读者快速掌握开发技巧。...

Global site tag (gtag.js) - Google Analytics