jquery的clone方法bug的修复

测试发现,textarea和select的jquery的clone方法有问题,textarea和select的值clone的时候会丢掉,发现这个是jquery的一个bug,上不了的可以看下代码,比较简单。就是在clone的时候将val再重新赋值一下,如果知道这个了,就简单了自己写。

引入到你要用的clone的页面就ok

jquery.fix.clone.js

(function (original) {
  jQuery.fn.clone = function () {
    var result           = original.apply(this, arguments),
        my_textareas     = this.find(‘textarea‘).add(this.filter(‘textarea‘)),
        result_textareas = result.find(‘textarea‘).add(result.filter(‘textarea‘)),
        my_selects       = this.find(‘select‘).add(this.filter(‘select‘)),
        result_selects   = result.find(‘select‘).add(result.filter(‘select‘));

for (var i = 0, l = my_textareas.length; i < l; ++i) $(result_textareas[i]).val($(my_textareas[i]).val());
    for (var i = 0, l = my_selects.length;   i < l; ++i) result_selects[i].selectedIndex = my_selects[i].selectedIndex;

return result;
  };
}) (jQuery.fn.clone);

jquery的clone方法bug的修复

时间: 2024-11-05 13:40:29

jquery的clone方法bug的修复的相关文章

jquery的clone办法bug修复

发现测试,textarea和select的jquery的clone有问题的方法,textarea和select值clone时间会输.这是发现jquery一个bug,上不了的能够看下代码.比較简单.就是在clone的时候将val再又一次赋值一下.假设知道这个了,就简单了自己写. 引入到你要用的clone的页面就ok jquery.fix.clone.js (function (original) {  jQuery.fn.clone = function () {    var result   

jQuery的克隆方法clone()

  网页中用到克隆的地方有很多,例如页面滚动到底部时内容动态加载,都可以用克隆来实现. 克隆时一般先把模板单独放出来,并给样式设置为display:none,用jQuery的clone()实现 1 <div class="panel panel-default clone-box"> 2 <div class="panel-heading"> 3 <a href="javascript:;" class="

表单使用clone方法后, 原有select无法生效

textarea和select的值clone的时候会丢掉,在clone的时候将val再重新赋值一下,如果知道这个了就加单了 测试发现,textarea和select的jquery的clone方法有问题,textarea和select的值clone的时候会丢掉,发现这个是jquery的一个bug,上不了的可以看下代码,比较简单.就是在clone的时候将val再重新赋值一下,如果知道这个了,就简单了自己写. 引入到你要用的clone的页面就ok jquery.fix.clone.js 1 2 3 4

IE6低版本jQuery里的show和hide方法BUG

公司内部一直在用的jQ的版本有些低,具体是哪个版本不太清楚,相关的东西都给删掉了,今天在做一个固定在页面右侧的导航的时候,IE6里出现了一个比较奇葩的问题.具体样子如下图: 收起是用定位left等于负的宽度写到这里的,这个导航要在滚动出一瓶的时候才出现,结果IE6下“收起”这部分,死活看不到,最终我在滚动的时候console了一下父层的overflow发现值为hidden. 原来是是JQ的show和hide改变了overflow的值.而且仅仅在给show和hide时间参数的时候才会发生. 比较奇

Android 5.0原生bug及修复方法

Android 5.0已经来了,这个版本改动非常大,也意味着会有更多的bug隐藏在其中,我会在这篇文章中一直更新自己遇到的原生bug及修复方法. 1.bug1 现象:5.0中ActivityManagerService.keyguardWaitingForActivityDrawn ()接口替换了4.4中ActivityManagerService.dismissKeyguardOnNextActivity()接口,但是带来了一个显示bug,现象是keyguard隐藏后activity窗口还没显

EasyTable2.0 功能更加强大,bug全面修复的html table插件!

最近整理和修复了1.0的全部bug,并且给2.0添加了不少新功能.由于语法上有些修正,所以我重新写了一个非常详细的demo.html在文档里面,这里直接贴出(由于添加了新的功能,et的2.0的压缩版本已经达到了20k的体积了,虽然略显大一些,但是我相信从功能上来讲觉得是划得来的.): <html> <head> <title></title> <style type="text/css"> * { margin: 0; pad

jQuery方法源码解析--jQuery($)方法(一)

jQuery方法源码解析--jQuery($)方法 注: 1.本文分析的代码为jQuery.1.11.1版本,在官网上下载未压缩版即可 2.转载请注明出处 jQuery方法: 这个方法大家都不陌生,在使用过程中,它还有另外一个名字,美元符号:$,$(...)其实就是jQuery(...); 它有很多种用法,通常都返回一个jquery对象,也可以作为$(document).ready(...);的简写形式,分析之前先看一下jQuery都有什么用法. 1.jQuery( selector [, co

JQ中的clone()方法与DOM中的cloneNode()方法

JQ中的clone()方法与DOM中的cloneNode()方法 cloneNode()定义和用法 cloneNode()方法创建节点的拷贝,并返回该副本. 语法: node.cloneNode(deep);  其接收一个可选参数"deep",为布尔类型,默认是false. 当设置为true,克隆当前节点,属性及当前节点的后代.若设置为false,仅仅克隆当前元素节点本身. 扩展:  使用cloneNode()方法,当被克隆的节点绑定了事件处理程序,事件处理程序是否会被一同克隆,这个我

jQuery.extend()方法和jQuery.fn.extend()方法

jQuery.extend()方法和jQuery.fn.extend()方法源码分析 这两个方法用的是相同的代码,一个用于给jQuery对象或者普通对象合并属性和方法一个是针对jQuery对象的实例,对于基本用法举几个例子: html代码如下: <!doctype html> <html> <head> <title></title> <script src='jquery-1.7.1.js'></script> <