这就是我想要获得的:当你点击#edit
jQuery在最近的tr
td中找到名为#collapse
的td时,用一个有值的输入替换它的内容以前的#collapse
html。
我试过jsFiddle但没有任何成功:http://jsfiddle.net/8PDdn/1/
任何人都可以帮助我获得我想要的东西吗?
答案 0 :(得分:1)
preventDefault()
是event
对象的方法之一而不是所选元素,您应该为event
对象调用它,也可以使用blur
编辑后修改div标签内容的输入事件:
$(function() {
$("a#edit").click(function(event) {
event.preventDefault();
var currentTodo = $("#collapse");
var cVal = currentTodo.html();
currentTodo.html('<input type="text" name="description" value="'+ cVal +'">');
});
$(document).on('blur', '#collapse input', function(){
$(this).parent().html(this.value)
})
});
答案 1 :(得分:0)
$(this).preventDefault();
这不是您如何阻止默认事件。您需要将事件传递给回调。
$(function() {
$("a#edit").click(function(e) {
$(e).preventDefault();
var currentTodo = $(this).closest("tr").find("#collapse");
var cVal = currentTodo.html();
currentTodo.html('<input type="text" name="description" value="'+ cVal +'">');
});
});
答案 2 :(得分:0)
这里几乎没有错:
id
应该是唯一的,您有许多具有相同ID的元素,请将其更改为类。您的问题是由此造成的:
$("a#edit").click(function() {
$(this).preventDefault(); ---> there is no preventDefault method on this
...
});
您需要将其更改为:
$("a#edit").click(function(e) {
$(e).preventDefault();
...
});