jquery attr("onclick",function()) 自动触发onclick事件生成行,导致死循环

luoshiyindfj 2011-09-07 08:53:26

function createRowItem(rowId)
{
var rows=$("#tab_OrderDetail tr");
var rowLen=rows.length;
var rowN= rowId+1;
if(rowN==rowLen)
{
var tr=$("<tr>").append("<td>"+rowN+"</td><td><input type=\"text\" id=\"truckName_"+rowN+"\"/></td><td><input type=\"text\" id=\"truckCode_"+rowN+"\"/></td><td><select id=\"truckType_"+rowN+"\"><option >0</option></select></td><td><input type=\"text\" id=\"configuration_"+rowN+"\"/></td><td><input type=\"text\" id=\"price_"+rowN+"\"/></td><td><input type=\"text\" id=\"Amount_"+rowN+"\"/></td><td><input type=\"text\" id=\"totalMoney_"+rowN+"\"/></td><td><select id=\"consignType_"+rowN+"\"><option>0</option></select></td><td><input type=\"text\" id=\"consignTime_"+rowN+"\"/></td>");
tr.attr("id", (rowN));
$("#tab_OrderDetail").append(tr);
$("#consignTime_"+rowN+"").attr("onclick",createRowItem(rowN));
}else{ return;}
}

...全文
926 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
fengyun817 2011-09-07
  • 打赏
  • 举报
回复
封装一下就行,function(){createRowItem(rowN)}

<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript">
//<![CDATA[
$(function(){
$("#row_1").one("click",function(){addRow($(this).attr("id"))});
});

function addRow(rowid)
{
var nextRowid = "row_"+(rowid.split("_")[1]+1);
$($("#"+rowid).clone()).appendTo($("#test")).attr("id",nextRowid).one("click",function(){ addRow(nextRowid)});;
}
//]]>
</script>

<body>
<table id="test">
<tr id="row_1">
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
</table>
</body>
luoshiyindfj 2011-09-07
  • 打赏
  • 举报
回复
奇怪,写在 html里面 onclick=\"createRowItem("+rowN+");\" 就OK了。 再琢磨琢磨。谢谢了。
三石-gary 2011-09-07
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 luoshiyindfj 的回复:]

确实是这样,点击第一行之后,直接就循环的生成行,onclick事件没起到控制生成的作用。直接就触发了。有什么高见没有?
[/Quote]

想办法不放在里面也能实现就行了
luoshiyindfj 2011-09-07
  • 打赏
  • 举报
回复
确实是这样,点击第一行之后,直接就循环的生成行,onclick事件没起到控制生成的作用。直接就触发了。有什么高见没有?
三石-gary 2011-09-07
  • 打赏
  • 举报
回复
$("#consignTime_"+rowN+"").attr("onclick",createRowItem(rowN));只要点击就会造成死循环
showenxxx 2011-09-07
  • 打赏
  • 举报
回复
jquery里面事件绑定可以用
$("input").click(function(){
//do stuff
});

$("input").bind("click",function(){
//do stuff
});

$("input").live("click",function(){
//do stuff
});
下载代码方式:https://pan.quark.cn/s/a4b39357ea24 全国计算机等级考试二级教程《Python语言程序设计》(2018年版)被视为针对Python入门者和备考人员的核心学习材料。该资料汇总了教材内的所有编程练习答案,这些答案在Python 3.5.3环境中经过实际执测试,从而保障了代码的准确性和应用价值。备考人员借助这些答案,能够评估自身的学习进度,并深入理解和熟练掌握Python编程的基础原理与方法。 1. Python基础理论:Python作为一门高级编程语言,因其简明扼要的语法结构和卓越的功能表现而备受推崇。基础内容涵盖了变量、数据种类(例如整型、浮点型、字符串、布尔型、列表、元组、字典、集合)、逻辑控制(比如条件判断if-else,循环控制for、while)、函数的声明及使用、模块的引入等。 2. Python高级应用:Python的进阶内容涉及异常管理(try-except-finally结构),类与实例(面向对象编程的基础,包含类的构造、对象的生成、属性与方法的运用、继承机制、多态表现),装饰器(用于调整函数或类的功能特性),上下文管理器(借助with语句实现资源管理)等。 3. 数据文件处理:Python配备了全面的文件操作功能,涉及文件的开启、数据读写、关闭操作,以及多种操作模式(例如r模式用于读取,w模式用于写入,a模式用于追加内容等)。此外,还包括文本文件与二进制文件的转换处理,以及文件的位置调整、复制和删除等操作。 4. 标准库的运用:Python的标准库资源极为丰富,比如os模块提供操作系统接口,sys模块用于获取系统参数,random模块可用于生成随机数值,datetime模块负责处...

52,779

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧