这就是我想要得到的:当您单击#edit
jQuery 时,会在最近tr
的 td 中找到调用#collapse
,并将其内容替换为具有前一个#collapse
html 值的输入。我在 jsFiddle 上试过但没有成功:http: //jsfiddle.net/8PDdn/1/
谁能帮我得到我想要得到的东西?
这就是我想要得到的:当您单击#edit
jQuery 时,会在最近tr
的 td 中找到调用#collapse
,并将其内容替换为具有前一个#collapse
html 值的输入。我在 jsFiddle 上试过但没有成功:http: //jsfiddle.net/8PDdn/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)
})
});
$(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 +'">');
});
});
这里有几件事是错误的:
id
应该是唯一的,您有许多具有相同 id 的元素,将其更改为 class。你的问题是由这个引起的:
$("a#edit").click(function() {
$(this).preventDefault(); ---> there is no preventDefault method on this
...
});
您需要将其更改为:
$("a#edit").click(function(e) {
$(e).preventDefault();
...
});