Javascript 将现有的单击功能重新附着到图元
在我的网站上,我有一个内联编辑,用于快速编辑/保存。但是,在jQuery重新创建Javascript 将现有的单击功能重新附着到图元,javascript,jquery,onclick,click,Javascript,Jquery,Onclick,Click,在我的网站上,我有一个内联编辑,用于快速编辑/保存。但是,在jQuery重新创建”)之后,它在第一次运行时工作正常; }); } }); 返回false; }); $('span#编辑a')。单击(函数(e){ e、 预防默认值(); var输入=$('span#adminnotice').text(); var lngth=输入长度; $('form#notice').html( \"\" + \"\" + \"\" ); $('span#adminnotice').hide();$('spa
”)之后,它在第一次运行时工作正常;
});
}
});
返回false;
});
$('span#编辑a')。单击(函数(e){
e、 预防默认值();
var输入=$('span#adminnotice').text();
var lngth=输入长度;
$('form#notice').html(
\"\" +
\"\" +
\"\"
);
$('span#adminnotice').hide();$('span#edit').hide().html('');$('span#form').show();
返回false;
});
在第一次运行之后,.click()
函数停止工作,因为我删除了
,然后重新添加它。如果我复制整个,我可以让它工作。单击()
,并将其放入AJAX的成功:
部分,但是,我知道一定有什么我不知道的,因为我非常怀疑jQuery的开发人员会要求程序员复制相同的代码两次
感谢您的帮助:D您不需要复制代码,您可以将单击处理程序分配给局部变量并重新使用它:
var onClick = function(e) { ... };
$('span#edit a').click(onClick);
或者只将处理程序应用于未删除的元素(事件传播时仍将触发该处理程序):
您不需要复制代码,可以将click处理程序分配给局部变量并重新使用:
var onClick = function(e) { ... };
$('span#edit a').click(onClick);
或者只将处理程序应用于未删除的元素(事件传播时仍将触发该处理程序):
尝试使用jquery的委托 描述:根据一组特定的根元素,将处理程序附加到与选择器匹配的所有元素的一个或多个事件上(现在或将来) 所以你的提交可以被改写成
$('body').delegate('#notice','submit',function(e){
//do stuff here
});
尝试使用jquery的委托 描述:根据一组特定的根元素,将处理程序附加到与选择器匹配的所有元素的一个或多个事件上(现在或将来) 所以你的提交可以被改写成
$('body').delegate('#notice','submit',function(e){
//do stuff here
});
$('body')关于('click'、'span#edit a',函数(e){
e、 预防默认值();
var输入=$('span#adminnotice').text();
var lngth=输入长度;
$('form#notice').html(
\"\" +
\"\" +
\"\"
);
$('span#adminnotice').hide();$('span#edit').hide().html('');$('span#form').show();
返回false;
});
$('body')关于('click','span#edit a',函数(e){
e、 预防默认值();
var输入=$('span#adminnotice').text();
var lngth=输入长度;
$('form#notice').html(
\"\" +
\"\" +
\"\"
);
$('span#adminnotice').hide();$('span#edit').hide().html('');$('span#form').show();
返回false;
});
$('body')。在('click','span#edit a',function(){})上代码>将单击功能委托给过滤器,以过滤正文中匹配的所有元素。这将解决您的问题。$('body')。在('click','span#edit a',function(){})上代码>将单击功能委托给过滤器,以过滤正文中匹配的所有元素。这将解决您的问题。这只是重新安排已经存在的内容-我正在询问如何刷新绑定,以便无论
删除/添加了多少次$('span#edit a')。单击()代码>仍然有效。刷新绑定的唯一方法是在AJAX中重新声明click()成功吗?好的,谢谢!与父级相关的第二个问题修复了它:)这只是重新安排了已经存在的内容-我在询问如何刷新绑定,以便无论
被删除/添加多少次$('span#edit a')。单击()代码>仍然有效。刷新绑定的唯一方法是在AJAX中重新声明click()成功吗?好的,谢谢!与父级相关的第二个已修复:)
$('body')on('click', 'span#edit a', function(e){
e.preventDefault();
var input = $('span#adminnotice').text();
var lngth = input.length;
$('form#notice').html(
\"<input type='text' name='notice' value='\"+input+\"' style='width:\"+((lngth+1)*6)+\"px' onkeyup=\\\"this.style.width=((this.value.length+1)*6)+'px';\\\" maxlength='256' />\" +
\"<input type='hidden' name='act' value='adminnotice' />\" +
\"<input type='submit' value='Update' />\"
);
$('span#adminnotice').hide();$('span#edit').hide().html('<img src=\'./images/saving2.gif\' />');$('span#form').show();
return false;
});