错误解决与分析

错误解决与分析
当我在项目中,我遇到了一个jQuery checkbok复选框,这是选择和取消的bug。我请教伟大的上帝,以确定它是如何发生的。

首先在代码上:

复制代码代码如下所示:
你喜欢什么运动选择/取消选择

足球

篮球

羽毛球

乒乓球

复制代码代码如下所示:

$(# checkedall)。Click(function(){)

如果($())是(:检查)){

$({姓名}:项目复选框)。Attr(查看

{人}

$({姓名}:项目复选框)。Attr(查看

}

});
第一次执行,没有问题,但第二次执行的问题,没有选择。

解决办法:改变attr()支持()

复制代码代码如下所示:

$(# checkedall)。Click(function(){)

如果($())是(:检查)){

$({项目}复选框

{人}

$({项目}复选框

}

});
The difference between PS:prop () and attr ():

在iteye最近的新闻,jQuery已经更新到1.6.1.the在以前的版本中最大的变化是增加了。道具的方法。但是,道具()方法和.attr()方法很难区分从字面上直译。在Chinese,属性和属性表示属性的含义。

在这个博客(Javascript:mctmp(0)),下面是一个使用简单的翻译。道具()和Attr():

1。升级到1.6.1 1.5.2

通过引入新的方法的变化。道具()和Attr(),jquery1.6.1引起了关于属性和属性之间的区别和联系进行了热烈的讨论。同时,也解决了一些1.6.1向后兼容性的问题。当你升级到1.6.1 1.5.2,你不需要修改任何属性代码。

以下是在jQuery1.6和1.6.1属性模块变化的描述,以及对优先使用attr()方法和()方法。支柱。然而,如前所述,jquery1.6.1允许你使用attr()方法,因为它是用在所有的情况下,前。

2。发生了什么事

属性模块的变化删除属性之间的歧义,但它在jQuery社区引起了一些混乱,因为在1.6之前的版本,一个方法(Attr())是用来处理属性。但老。attr()方法具有一定的缺陷,这是难以维持的。jquery1.6.1更新属性模块和修复了几个bug。

特别是,布尔属性,如检查,选择只读,残疾,都在1.6.this 1.6.1意味着以下代码:

复制代码代码如下所示:

$(:复选框),Attr(查了,真的);

$(选项)。Attr(选中,真的);

$(输入),Attr(只读,真的);

$(输入),Attr(残疾人,真的);
即使这样的代码:

复制代码代码如下所示:

如果($(复选框),Attr(检查)){是} / * * /东西
不需要做任何改变1.6.1为了保持理想的效果。

为了使改变。attr()在jQuery1.6明确的方法,下面是一些例子使用attr()。虽然它在以前版本的jQuery中正常工作,但必须使用。
首先,attr()在窗口或文档的方法不在jQuery1.6正常运行,因为在窗口和文档没有属性。它们包含的属性(例如:位置或发生),必须用操作。道具()方法或简单地使用Javascript在jquery1.6.1,本地方法。使用。attr()窗口中,文件将自动转换为使用。而不是把一个错误的道具。

其次,检查、选择和其他前面提到的布尔属性,因为这些属性是用它们之间的特殊关系处理的,基本上,属性就是您在下面的HTML中看到的属性:
布尔属性,如选中的,只设置默认值或初始值。在复选框元素中,选中的属性是在页面加载时设置的,而不管选中的复选框元素是否被选中。

属性是什么浏览器使用记录的电流值,在正常情况下,属性反映了其对应的属性(如果存在的话)。但这不是布尔attriubutes的情况。当用户点击一个复选框或选项的元素选择元素的布尔属性保持最新。但相应的布尔属性是不同的,正如上面提到的,他们只是用浏览器保存的初始值。

复制代码代码如下所示:

$(::复选框)。获取(0);

相同的为$()复选框:;
在jQuery1.6,如果你使用下面的方法来设置检查:
复制代码代码如下所示:

$(:复选框),Attr(查了,真的);
复选框元素将不被选中,因为它是需要设置的属性,但所有设置都是初始值。

然而,当jQuery1.6获释,jQuery团队了解,设置一些值不是特别有用的时候,浏览器只关心页面加载。因此,为了保持向后的兼容性和实用性。attr()方法,我们可以继续使用jquery1.6.1(。attr)获取和设置这些布尔属性。

最常见的属性被选中,选中,禁用、只读,但下面是一个由jquery1.6.1,以支持完整的清单。attr()来获取和设置布尔属性/属性的动态。

自动聚焦,自动播放,异步,检查,控制,延缓,禁用,

隐藏、环、多、开放、只读,需要选择范围,
(注:大部分HTML5属性)

它还建议使用。道具()建立这些布尔方法属性/属性,即使这些都不成。道具()方法,但是你的代码仍然可以正常运行jquery1.6.1。

这里有一些属性和属性的列表,并在正常的情况下,他们应该被用来获取和设置他们的相应的方法(见下面的列表)。以下是第一次使用,但.attr()方法可以运行在所有属性的情况下。

注意:一些DOM元素的属性也在下面列出,但仅限于新的。
*例如:window.location

***如果需要(如果需要的话),Width()

都不是。attr()或()。支柱应使用价值或价值,而不是使用。瓦迩()方法(even.attr(价值

3,首选用法概述

的。道具()方法将被用于处理布尔属性/属性不存在HTML(例如,窗口的位置),所有其他属性(你看到的HTML)可以继续使用。attr()做的操作方法

上面的概述已经清楚地描述过了,我不需要再总结了。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部