2017-06-02 56 views
0

我有以下代码(我已经为此简化了),它与jquery-1.7一起工作良好。jQuery - 如何使用“on()”方法而不是“live()”?

<div id="sublike-1">Like 1</div> 
<div id="sublike-2">Like 2</div> 
<div id="sublike-3">Like 3</div> 

<div id="sublike-form-1"><input type="text" /> Save 1</div> 
<div id="sublike-form-2"><input type="text" /> Save 2</div> 
<div id="sublike-form-3"><input type="text" /> Save 3</div> 

JQuery的

$(document).find("div[id^='sublike-']").live('click', function(){ 
    var num = this.id.split('-')[1]; 
    $('#sublike-form-' + num).toggle(); 
}); 

我想升级我的代码,虽然这样我就可以升级我的jQuery包的版本,所以我的onclick改变它。

虽然这并不起作用。它也不会抛出任何错误,所以我看不出问题出在哪里。

$(document).find("button[class^='sub-']").on('click','a', function(){ 
      alert('hi'); 
     }); 

任何想法?

更新 这是我的按钮

<button type="button" id="sub-'+o.id+'" class="select_address btn btn- 
    primary icon pull-right">Select</button> 
+1

呦正在努力中'button' Click事件处理程序分配给'了'标签... –

+0

我没有看到任何元素选择匹配'按钮[^类=“子” ]' –

+0

仍然没有类按钮type.and也没有任何标签里面的按钮 –

回答

0

在下面的代码中,你正在做的是找到具有'sub'类的按钮。然后在里面应该是一个标签,点击你必须提醒'嗨'。

以下是可以与您的jQuery代码映射的html。

<button type="button" class="sub-'+o.id+'"><a>Select</a></button> 


$(document).find("button[class^='sub-']").on('click','a', function(){ 
       alert('hi'); 
      }); 

但请记住不要使用上述情况,因为我们正在为每个元素创建单独的类。这不应该发生。你应该使用id来创建单独的id。

否则,你必须改变你的jQuery代码相关的HTML代码如下。

$(document).find("button[id^='sub-']").on('click', function(){ 
        alert('hi'); 
       }); 

如果您有任何其他问题,请让我知道。

感谢

+0

非常感谢与id的方法为我工作 – Yugaprashanthan

0
$(document).find("button").on('click','a', function(){..}); 

你内按钮应用“点击”事件到a元素- 这不符合您的HTML(并且也将是无效的html - 链接不是按钮的有效儿童)

您需要

$("button").on('click',function(){ ... }); 

$(document).on('click','button', function(){ ... }); 

注意,我把部分属性你的选择 - 这是错误的,但你可以精确瞄准右边的按钮,你会在jQuery的任何其他选择。

相关问题