使用jquery编辑带有用户输入的段落
这是一个类似CRUD系统的编辑功能,但其目的是简化,当用户通过单击或双击某个项目时,它将变成一个字段,直接更新数据 演示 问题是我不能在字段中键入任何内容,我想知道为什么 Html使用jquery编辑带有用户输入的段落,jquery,html,Jquery,Html,这是一个类似CRUD系统的编辑功能,但其目的是简化,当用户通过单击或双击某个项目时,它将变成一个字段,直接更新数据 演示 问题是我不能在字段中键入任何内容,我想知道为什么 Html <li style="list-style:none">click here to edit</li> 单击此处进行编辑 jquery $(document).ready(function(){ $('li').click(function(){ $(this).html("<
<li style="list-style:none">click here to edit</li>
单击此处进行编辑
jquery
$(document).ready(function(){
$('li').click(function(){
$(this).html("<input id='input' type='text'>");
});
$('#input').blur(function(){
var newVal = ('#input').val();
$('li').text('newVal');
});
});
$(文档).ready(函数(){
$('li')。单击(函数(){
$(this.html(“”);
});
$('#input').blur(函数(){
var newVal=(“#input”).val();
$('li').text('newVal');
});
});
我的朋友,你每次点击都会添加一个新的输入,所以你需要快速输入(只是开玩笑而已)。但这就是问题所在。松开li click功能。我的朋友,你每次点击都会添加一个新的输入,所以你需要快速输入(只是开玩笑)。但这就是问题所在。松开li单击功能。这是因为单击文本字段也是单击“li”。因此,当您单击现有的文本字段时,它会添加一个新的文本字段
这是工作小提琴:
以及守则:
$(document).ready(function(){
$('li').click(function(){
input = $("<input id='input' type='text'>").blur(function(){
$('.editable').removeClass('editable');
var newVal = $(this).val();
$('li').text(newVal);
});
if (!$(this).hasClass('editable'))
$(this).addClass('editable').html(input);
});
});
$(文档).ready(函数(){
$('li')。单击(函数(){
输入=$(“”)。模糊(函数(){
$('.editable').removeClass('editable');
var newVal=$(this.val();
$('li').text(newVal);
});
if(!$(this).hasClass('editable'))
$(this).addClass('editable').html(输入);
});
});
我使用.editable类来检测文本字段是否已经打开。这是因为单击文本字段也是单击“li”。因此,当您单击现有的文本字段时,它会添加一个新的文本字段 这是工作小提琴: 以及守则:
$(document).ready(function(){
$('li').click(function(){
input = $("<input id='input' type='text'>").blur(function(){
$('.editable').removeClass('editable');
var newVal = $(this).val();
$('li').text(newVal);
});
if (!$(this).hasClass('editable'))
$(this).addClass('editable').html(input);
});
});
$(文档).ready(函数(){
$('li')。单击(函数(){
输入=$(“”)。模糊(函数(){
$('.editable').removeClass('editable');
var newVal=$(this.val();
$('li').text(newVal);
});
if(!$(this).hasClass('editable'))
$(this).addClass('editable').html(输入);
});
});
我使用.editable类来检测文本字段是否已经打开。只是一个想法,但是您是否考虑过使用HTML5
contenteditable
功能
显然,它在过时的浏览器中不起作用,但如果您不关心这一点,那么随着应用程序的增长,它将为您节省大量工作。只是一个想法,但是您是否考虑过使用HTML5
内容可编辑功能
显然,它不会在过时的浏览器中工作,但如果您不关心这一点,那么随着应用程序的增长,它将为您节省大量的工作。jEditable plugin?这是一个很好的插件来做这样的事情。看看它是否符合你的目的@tonoslfx他几乎可以用了,为什么要用一个插件来膨胀一切,而html5 contenteditable就可以了?这是一个很好的插件来做这样的事情。看看它是否符合你的目的@tonoslfx他几乎可以用了,为什么HTML5ContentEditable可以用,却要用插件来膨胀一切呢?为什么这是个问题?不是为什么这可能是一个问题,而是为什么在@Nurul的例子中它会是一个问题?我的整个项目几乎都在jquery中,有什么类似于HTML5的contenteditable的东西可以在jquery中完成吗?或者自定义逻辑?localstorage是…..本地的。只有编辑它的人才能看到它,我怀疑这是他想要的。此外,只要简单地删除浏览器缓存,它就很容易被丢弃。没错,但同样的.blur()
功能可以应用于大多数现代浏览器中的任何元素。一个快速的AJAX例程可以将新内容发布到服务器:)为什么这是一个问题?不是为什么这可能是一个问题,而是为什么在@Nurul的例子中它会是一个问题?我的整个项目几乎都在jquery中,有什么类似于HTML5的contenteditable的东西可以在jquery中完成吗?或者自定义逻辑?localstorage是…..本地的。只有编辑它的人才能看到它,我怀疑这是他想要的。此外,只要简单地删除浏览器缓存,它就很容易被丢弃。没错,但同样的.blur()
功能可以应用于大多数现代浏览器中的任何元素。一个快速的AJAX例程可以将新内容发布到服务器:)请同时添加input=$(“”)代码>到您的代码。a)输入是一个变量吗?@Stano它被认为是问题的正确答案,对我来说似乎工作正常。它确实可以正常工作。@Nurul是的,输入是一个变量,您需要它来绑定模糊事件,并在以后使用它来设置HTML内容。我只是忘了写‘var’,因为我习惯了咖啡脚本;)@Parrotmaster部分地,它总是创建空的输入元素。但是费迪南德的答案很好,所以当然是+1。请再加上input=$(“”)代码>到您的代码。a)输入是一个变量吗?@Stano它被认为是问题的正确答案,对我来说似乎工作正常。它确实可以正常工作。@Nurul是的,输入是一个变量,您需要它来绑定模糊事件,并在以后使用它来设置HTML内容。我只是忘了写‘var’,因为我习惯了咖啡脚本;)@Parrotmaster部分地,它总是创建空的输入元素。但是费迪南德的回答很好,所以当然是+1。