2017-06-02 26 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的任何其他選擇。