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个回答

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

贴个完整的,包括html,不然,没上下文环境这很难看出来问题。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问