Javascript jQuery执行一次后不工作
正如我所说,我的小jQuery脚本在运行了两次之后就不能工作了,我遇到了一个奇怪的错误。你们当中有谁知道发生了什么/如何解决它吗?如果你能做到,那就太棒了 谢谢大家!Javascript jQuery执行一次后不工作,javascript,jquery,Javascript,Jquery,正如我所说,我的小jQuery脚本在运行了两次之后就不能工作了,我遇到了一个奇怪的错误。你们当中有谁知道发生了什么/如何解决它吗?如果你能做到,那就太棒了 谢谢大家! Connor您正在删除要为其添加初始按键事件处理程序的元素。快速修复方法是将事件处理程序取出到函数中,并将其重新附加到新添加的元素: function handleKeyPress(event) { if (event.which == '13') { var itemToAdd = $(".focus")
Connor您正在删除要为其添加初始
按键
事件处理程序的元素。快速修复方法是将事件处理程序取出到函数中,并将其重新附加到新添加的元素:
function handleKeyPress(event) {
if (event.which == '13') {
var itemToAdd = $(".focus").val();
if (itemToAdd != ""){
$(this).remove();
$(".active-li").append(itemToAdd);
$("#wrapper ul").append("<li class='active'><input type='text' class='root focus' /></li>");
$(".active-li").removeAttr("class");
$(".active").removeClass("active").addClass("active-li");
$(".focus").keypress(handleKeyPress).focus();
}
}
}
$(".focus").keypress(handleKeyPress);
功能手柄按键(事件){
如果(event.which=='13'){
var itemToAdd=$(“.focus”).val();
如果(itemToAdd!=“”){
$(this.remove();
$(“.active li”)。追加(itemToAdd);
$(“#wrapper ul”).append(“”);
$(“.active li”).removeAttr(“类”);
$(.active”).removeClass(“active”).addClass(“active li”);
$(“.focus”).keypress(handleKeyPress.focus();
}
}
}
$(“.focus”).keypress(handleKeyPress);
但我必须说,这看起来是一个非常低效的方式来实现你在这里试图做的事情。。。想一个不必删除输入元素的替代解决方案(只需在其前面插入新的
。您正在删除要为其添加初始按键
事件处理程序的元素。快速修复方法是将事件处理程序取出到函数中,并将其重新附加到新添加的元素:
function handleKeyPress(event) {
if (event.which == '13') {
var itemToAdd = $(".focus").val();
if (itemToAdd != ""){
$(this).remove();
$(".active-li").append(itemToAdd);
$("#wrapper ul").append("<li class='active'><input type='text' class='root focus' /></li>");
$(".active-li").removeAttr("class");
$(".active").removeClass("active").addClass("active-li");
$(".focus").keypress(handleKeyPress).focus();
}
}
}
$(".focus").keypress(handleKeyPress);
功能手柄按键(事件){
如果(event.which=='13'){
var itemToAdd=$(“.focus”).val();
如果(itemToAdd!=“”){
$(this.remove();
$(“.active li”)。追加(itemToAdd);
$(“#wrapper ul”).append(“”);
$(“.active li”).removeAttr(“类”);
$(.active”).removeClass(“active”).addClass(“active li”);
$(“.focus”).keypress(handleKeyPress.focus();
}
}
}
$(“.focus”).keypress(handleKeyPress);
但我必须说,这看起来是一个非常低效的方式来实现你在这里试图做的事情。。。想一个不必删除输入元素的替代解决方案(只需在输入元素之前插入新的
。您只需将按键事件绑定到第一个。焦点元素。一旦您删除它,它将不再接收按键事件
换行
$(".focus").keypress(function(event) {
到
jQuery.live()
为当前和将来匹配当前选择器的所有元素的事件附加一个处理程序
此外,您需要在下面的行之后添加此项,以防止出现意外行为:
if (event.which == '13') {
event.preventDefault(); < stop the enter keypress
if(event.which==“13”){
event.preventDefault();<停止回车键
您仅在第一个.focus
元素上绑定按键事件。一旦删除它,它将不再接收按键事件
换行
$(".focus").keypress(function(event) {
到
jQuery.live()
为当前和将来匹配当前选择器的所有元素的事件附加一个处理程序
此外,您需要在下面的行之后添加此项,以防止出现意外行为:
if (event.which == '13') {
event.preventDefault(); < stop the enter keypress
if(event.which==“13”){
event.preventDefault();<停止回车键
注意:错误显示在2上returns@thenoviceoof谢谢-刚刚修复;)注意:错误显示在2returns@thenoviceoof谢谢-只是修复它;)完美的,完美无瑕地工作。谢谢-一旦它允许我,我将标记它是正确的!而且,您可能需要考虑Ates的建议,只需插入,<代码><代码> >文本>活动> <代码>元素,根本不删除<代码> <代码>。我绝对在考虑。非常感谢你们两位!完美,完美无瑕。谢谢-一旦我允许,我将标记为正确的!而且,您可能需要考虑Ates的建议,只需插入,<代码>。,文本到<代码> .Active Leave<代码>元素,根本没有删除<代码> <代码>。我绝对在考虑这一点。非常感谢你们两个!谢谢Ates,我一定会考虑的!谢谢Ates,我一定会考虑的!