jquery可无限克隆添加文本框插件

所属分类: 网页特效-其它&杂项    2023-08-02 11:08:26

jquery可无限克隆添加文本框插件 ie兼容6
 查看演示  登录后下载 温馨提示
登录会员即可享受免费下载
 我要建站

jquery可无限克隆添加文本框插件(共3个文件)

    • jquery.simpleClone.js
    • jquery.simpleClone.min.js
    • index.html

使用方法

(function ($) {
	'use strict';

	$.fn.simpleClone = function (options) {
		const opts = $.extend({}, $.fn.simpleClone.defaults, options);
		const elems = this;

		return elems.each(function () {
			$(this).on('click', function (e) {
				e.preventDefault();

				const $self = $(this);
				const $wrap = $self.closest('.' + opts.addButtonWrapClass);
				const $targetWrap = $wrap.prev();
				const $targets = $targetWrap.find('.' + opts.targetClass);
				const $target = $targets.first();
				const count = $target.parent().children('.' + opts.targetClass).length + 1;

				if (opts.cloneLimit === false || (typeof opts.cloneLimit === 'number' && count <= opts.cloneLimit)) {
					let $clone = $target.clone(true);
					const rmvButton = document.createElement('button');
					rmvButton.type = 'button';
					rmvButton.className = opts.removeButtonClass === null ? $.fn.simpleClone.defaults.removeButtonClass : $.fn.simpleClone.defaults.removeButtonClass + ' ' + opts.removeButtonClass;
					rmvButton.innerText = opts.removeButtonText;

					$clone.append(rmvButton);

					$clone.find('select').each(function(index, item) {
						$(item).val($target.find('select').eq(index).val());
					});

					if (opts.copyValue === false) {
						$clone.find('input:not("input[type=radio], input[type=button], input[type=submit]"), textarea, select').each(function(index, item) {
							$(item).val('');
						});
					}

					if ($.isFunction(opts.filterCloneElement)) {
						$clone = opts.filterCloneElement.call(elems, $clone, opts);
					}

					if ($.isFunction(opts.onClone)) {
						opts.onClone.call(elems, $clone, opts);
					}

					$target.parent().append($clone);

					if ($.isFunction(opts.onComplete)) {
						opts.onComplete.call(elems, $clone, opts);
					}
				} else {
					const message = document.createElement('span');
					message.className = opts.limitMessageClass;
					message.innerText = opts.limitMessageText;

					if ($self.next('.' + opts.limitMessageClass).length === 0) {
						$self.after(message);

						setTimeout(function () {
							$self.next('.' + opts.limitMessageClass).fadeOut().remove();
						}, 4000);
					}
				}
			});

			$(document).on('click', '.' + $.fn.simpleClone.defaults.removeButtonClass, function (e) {
				e.preventDefault();

				const $self = $(this);

				if ($.isFunction(opts.onRemove)) {
					opts.onRemove.call(elems, opts);
				}

				$self.parent().remove();

				if ($.isFunction(opts.onCompleteRemove)) {
					opts.onCompleteRemove.call(elems, opts);
				}
			});
		});
	};

	$.fn.simpleClone.defaults = {
		copyValue         : true,
		cloneLimit        : false,
		limitMessageClass : 'simpleClone-clnLmt',
		limitMessageText  : 'Maximum count has been reached.',
		targetClass       : 'simpleClone-clnElem',
		addButtonWrapClass: 'simpleClone-btnWrap',
		removeButtonClass : 'simpleClone-rmvBtn',
		removeButtonText  : '移除',
		filterCloneElement: null,
		onClone           : null,
		onComplete        : null,
		onRemove          : null,
		onCompleteRemove  : null
	};
})(jQuery);

站长提示:
1. 苦力吧素材官方QQ群:950875342
2. 平台上所有素材资源,需注册登录会员方能正常下载。
3. 会员用户积极反馈网站、素材资源BUG或错误问题,每次奖励2K币
4. PHP源码类素材,如需协助安装调试,或你有二次开发需求,可联系苦力吧客服。
5. 付费素材资源,需充值后方能下载,如有任何疑问可直接联系苦力吧客服
相关资源 / 其它&杂项

jquery轻量级可自定义的固定于页面底部可关闭横幅特效代码

rib.js是一个轻量级可自定义的底部横幅插件,当拉动页面滚动条至页面底部后,横幅自动消失隐藏。
  其它&杂项
 9220  0

html+css创建的按时间顺序排列的垂直时间轴

一款公司历史大事记垂直时间轴布局模板,它使用CSS样式来设计时间线,为了能让用户更快更轻松的阅读。
  其它&杂项
 7430  0

基于原生js多个元素间无缝平滑切换特效代码

一款多个元素区块切换特效,该代码定义了一个函数来切换类,并将其附加到特定的HTML元素。单击时,这些元素会动态切换其活动状态,从而增强用户交互。可直观地突出显示选中的元素。
  其它&杂项
 7189  0

jquery简单的日历每日签到功能代码

一款绿色日历签到插件,带统计当月签到次数,很不错的特效!
  其它&杂项
 5209  0

评论数(0) 回复有机会获得K币 用户协议

^_^ 还没有人评论,快来抢个沙发!
😀
  • 😀
  • 😊
  • 😂
  • 😍
  • 😑
  • 😷
  • 😵
  • 😛
  • 😣
  • 😱
  • 😋
  • 😎
  • 😵
  • 😕
  • 😶
  • 😚
  • 😜
  • 😭
发表评论