hanyu332 2010-05-28 13:52
浏览 228
已采纳

jQuery的问题

快疯了,刚开始想用下面的点击事件把url传出去,结果url找不到,后来一点一点的找原因,下了同样的方法,上面的就能把url弹出来,下面的就不行(下面的如果只留alert也能弹出来,难道他还能从下往上执行???),救火吧,兄弟姐妹们

function tdclick(elems,url) {
//0.保存当前的td节点
var td = $(elems);
//1.取出当前td中的文本内容保存起来
var a=td.children("a");
text = td.text();
//2.清空td里面的内容
td.html(""); //也可以用td.empty();
//3.建立一个文本框,也就是input的元素节点
var input = $("");
//4.设置文本框的值是保存起来的文本内容
[color=red]//第一个[/color]
input.attr("value", text);
//4.5让文本框可以响应键盘按下并弹起的事件,主要用于处理回车确认
[color=red]//第二个keyup方法[/color]
input.keyup(function(event){
alert(url);
});
input.keyup(function(event) {
alert(url);
//0.获取当前用户按下的键值
//解决不同浏览器获取事件对象的差异
var myEvent = event || window.event;
var kcode = myEvent.keyCode;
//1.判断是否是回车按下
if (kcode == 13) {
//2.保存当前文本框的内容
if(input.val() == null ||input.val() == ""){
updateInfoShow("修改失败!信息不能为空");
}else{
var intputtext = input.val();
var url='?'+td.attr("name")+"="+encodeURI(encodeURI(input.val()))+"&orgD.id="+td.siblings("#id").text();
//var url='/oa/org/org_update?'+td.attr("name")+"="+encodeURI(encodeURI(input.val()))+"&orgD.id="+td.siblings("#id").text();
url=convertURL(url) ;
$.get(url, null,function(data){
var dataU=decodeURI(data);
if(dataU=="true"){
//3.清空td里面的内容
td.empty();
//4。将保存的文本框的内容填充到td中
a.text(intputtext);
td.append(a);
if(td.html() == ""){
td.text(intputtext);
}
//5.让td重新拥有点击事件
td.click(tdclick);
}else{
//提示窗口登场
dataU=dataU.replace(/%2C/g, ",");
updateInfoShow(dataU);
//msg.css("display","block");
clickend(td,a);
}
});
}
}
else if(kcode == 27){
clickend(td,a);
}
});
//5.将文本框加入到td中
td.append(input); //也可以用input.appendTo(td)
//5.5让文本框里面的文字被高亮选中
//需要将jquery的对象转换成dom对象
var inputdom = input.get(0);
inputdom.select();
//6.需要清除td上的点击事件
// td.unbind("click");
td.attr("onclick","");
}

  • 写回答

2条回答

  • myali88 2010-05-29 18:00
    关注

    你既然这样绑定事件监听:
    [code="javascript"]
    $(".name").click(tdclick);
    [/code]
    那么tdclick函数只会把当前事件对象作为第一个参数传进去,所以,你定义的的函数:
    [code="javascript"]
    function tdclick(elems,url) { ... }
    [/code]
    在调用时,第一个参数elems事件被赋值为当前事件对象,根本不是你所期望的当前点击的节点,如果要访问当前节点,直接下面访问就可以:
    [code="javascript"]
    var td = $(this);
    [/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘