两点关于jQuery的注意事项

问题:

我要写一个动态加载输入问题和选项的组件,如图所示:

初始化状态:

运行效果:

问题1:

当点击”添加问题“的时候,动态加入一个大的节点,每一个问题后面都有一个”添加选项“的按钮。需要给这个按钮添加事件,点击再去加入选项的节点。初始化给这类按钮添加事件是不可行的,因为页面一加载进来的事件对之后动态添加的节点是无效的,所以要再绑定一个事件。这里有问题!因为你绑定的事件也会给之前存在的节点再绑定一次,结果导致你点击之前的按钮,会触发多次。所以就要在绑定新节点的事件之前,把之前的都清理掉,保证页面上所有按钮都只有一个绑定事件。解决代码如下:

$(".addOption").unbind("click");
$(".addOption").click(function(){
	addOption(this);
});

问题2:

在删除选项的时候,要对之后的选项进行排序,1234,删除了2,应该是123。

一开始我的处理是:点击删除选项的按钮,就remove这个节点的父节点,也就是这整个选项区域(事件绑定在那个<a>上面),再去获取这个节点的父节点的父节点,然后获取全部的子节点,就知道现在有几个选项。问题就是死活获取不到,这个是根本不可能获取到任何父节点的,这个节点都删了,就不存在这个节点了,如何取到父节点。所以要在删除选项之前把这个父节点的父节点获取到。之后再做处理。

function delOption(node){
	var optsAreas = $(node).parent().parent();
	$(node).parent().remove();
	var options = $(optsAreas).children();
	var optsLength = $(options).length;
	var i = 1;
	$(options).each(function(){
		$(this).find('.order-option').html(i);
		if(i<optsLength){
			i++;
		}
	});
}

这里纯属于我个人在实际问题中的一些心得体会,可能对问题解决的方法不是特别严谨,欢迎指正交流。

时间: 2024-10-11 22:45:32

两点关于jQuery的注意事项的相关文章

jquery serialize注意事项

input 控件必须有name属性和value属性. <input id="edit_gender" name="edit_gender" value="" type="text" />

jQuery工作原理解析以及源代码示例

jQuery的开篇声明里有一段非常重要的话:jQuery是为了改变javascript的编码方式而设计的. 从这段话可以看出jQuery本身并不是UI组件库或其他的一般AJAX类库. jQuery改变javascript编码方式! 那么它是如何实现它的声明的呢?这里,用以下的一段简短的使用流程: 1)查找(创建)jQuery对象:$(”selector”); 2)调用jQuery对象的方法完成我们需要完成的工作:$(”selector”).doOurWork(); ok,jQuery就是以这种可

jQuery工作原理解析

jQuery的开篇声明里有一段非常重要的话:jQuery是为了改变javascript的编码方式而设计的. 从这段话可以看出jQuery本身并不是UI组件库或其他的一般AJAX类库. jQuery改变javascript编码方式! 那么它是如何实现它的声明的呢?这里,用以下的一段简短的使用流程: 1)查找(创建)jQuery对象:$(”selector”); 2)调用jQuery对象的方法完成我们需要完成的工作:$(”selector”).doOurWork(); ok,jQuery就是以这种可

jQuery的优势

jQuery的优势(write less,do more) 1.轻量级.jQuery很轻巧,採用UglifyJS(http://github.com/mishoo/UglifyJS)压缩后,大小保持在30KB左右. 2.强大的选择器. 同意开发人员使用从CSS1-CSS3差点儿全部的选择器.以及jQuery独创的高级而复杂的选择权. 3.出色的DOM操作的封装. jQuery封装了大量经常使用的DOM操作,使开发人员在编写DOM操作相关程序的时候,更得心应手. 4.可靠的事件处理机制 5.完好的

jQuery实例分析解析

Jquery是一个优秀的Javascript框架,特别是对css和XPath的支持,使我们写js变得更加方便!如果你不是个js高手又想写出优 秀的js效果,jQuery可以帮你达到目的!jQuery的开篇声明里有一段非常重要的话:jQuery是为了改变javascript的编码方式而设计的.从这段话可以看出jQuery本身并不是UI组件库或其他的一般AJAX类库.jQuery改变javascript编码方式! 那么它是如何实现它的声明的呢?这里,用以下的一段简短的使用流程: 1)查找(创建)jQ

jQuery的工作原理

jQuery是为了改变javascript的编码方式而设计的. jQuery本身并不是UI组件库或其他的一般AJAX类库. 那么它是如何实现它的声明的呢? 先看一段简短的使用流程: (1).查找(创建)jQuery对象:$(”selector”); (2).调用jQuery对象的方法完成我们需要完成的工作:$(”selector”).doOurWork(): 可以说,是用最简单的编码逻辑来改变javascript编码方式的. 有限的方法满足不了日益增长各有所需的要求,所以,必须提供jQuery对

jQuery Mobile+Html5开发手机端网站感想与总结-(初)

看jQuery Mobile相关方面的东西,看了几天,发现,其实除了里边默认的图标.主题.以及点击后跳转的效果之外,其他的东西,和普通的html页面一样. jQuery Mobile注意事项: 1.新的页面开始,标注:data-role="page" 2.页面中的角色:data-role="header",其中的header.footer.navbar等,对应的css中,均为:ui-header.ui-footer.ui-navbar等. 3.页面中的图标,若想要自

javaWeb核心技术第五篇之jQuery

- 概述 - jQuery是一个优秀的javascript框架(js类库),兼容css3和各大浏览器,提供dom,events,animate,ajax等简易的操作.并且jQuery有非常丰富的插件,大多数功能都有相应的插件解决方案.jQuery的宗旨是write less, do more. (写的更少,做的更多) - jQuery入门 - jQuery和html整合 - 下载 - 下载地址:www.jquery.com - 使用script的src属性即可 "eg:<script sr

前端js之JQuery

目录 jQuery介绍 jQuery的优势 jQuery内容 jQuery对象 jQuery基础语法结构 jQuery 使用注意事项 查找标签 基本选择器 层级选择器 jQuery介绍 jQuery是一个轻量级的.兼容多浏览器的JavaScript库. jQuery使用户能够更方便地处理HTML Document.Events.实现动画效果.方便地进行Ajax交互,能够极大地简化JavaScript编程.它的宗旨就是:"Write less, do more." jQuery的优势 一