Javascript/Jquery:替换为单击

Javascript/Jquery:替换为单击,jquery,click,Jquery,Click,我需要向动态添加的链接添加一个单击处理程序。我已经读到JQuery中的click方法不适用于动态创建的元素(实际上我无法让它工作) 我有以下代码: $(this).find(ops.editbuttonselector).click(function(e) { 由于.live方法现在已被弃用,因此我需要为此使用.on。 根据这一点以及我对jquery的理解(有限),我应该做: selector = $(this).find(ops.editbuttonselector) $(document

我需要向动态添加的链接添加一个单击处理程序。我已经读到JQuery中的click方法不适用于动态创建的元素(实际上我无法让它工作)

我有以下代码:

$(this).find(ops.editbuttonselector).click(function(e) {
由于.live方法现在已被弃用,因此我需要为此使用.on。 根据这一点以及我对jquery的理解(有限),我应该做:

selector = $(this).find(ops.editbuttonselector) 
$(document).on('click', selector, function(e) {
但这也不起作用,事实上,在(现有元素)停止工作之前起作用的东西也不起作用

有人能告诉我正确的语法吗


提前感谢

.on()
的第二个参数是选择器字符串,而不是jQuery对象:

$(document).on('click', ops.editbuttonselector, function(e) {

.on()
的第二个参数是选择器字符串,而不是jQuery对象:

$(document).on('click', ops.editbuttonselector, function(e) {

由于您使用
$(this)
绑定它,因此我假设您正在尝试在元素添加到DOM之后添加处理程序。。如果是这样的话,你可以像下面这样做

//below is direct binding which is better than delegated event
$(this).find(ops.editbuttonselector).on('click', function(e) {
否则,如果执行下行时,
是DOM中存在的父元素

//this is delegated event binding method
$(this).on('click', ops.editbuttonselector, function(e) {
否则,您可以在上找到可能存在于DOM或document对象中的最接近的父对象


您可以阅读更多关于何时以及为什么应该绑定到文档对象的信息

,因为您使用
$(this)
绑定它,我假设您正在尝试在元素添加到DOM后添加处理程序。。如果是这样的话,你可以像下面这样做

//below is direct binding which is better than delegated event
$(this).find(ops.editbuttonselector).on('click', function(e) {
否则,如果执行下行时,
是DOM中存在的父元素

//this is delegated event binding method
$(this).on('click', ops.editbuttonselector, function(e) {
否则,您可以在上找到可能存在于DOM或document对象中的最接近的父对象


您可以阅读更多关于何时以及为什么要绑定到文档对象的信息

感谢您提供了更完整的答案。您的解决方案也有效,并具有其他好处。感谢您提供更完整的答案。您的解决方案也起到了作用,并带来了其他好处。