2014-01-23 139 views
0

我想觸發元素,而我的Checkbox被選中或未選中。 它完美罰款:jquery更改()不觸發新元素

$('.myCheckbox:checkbox').change(function() { 
//.. 
} 

的事情是,如果我創建客戶端一個新的複選框,則.change()犯規觸發。

我也試過:

$('.myCheckbox:checkbox').live('change',function() { 

,它不工作以及..

沒有人知道什麼是錯?

+1

什麼版本的jQuery?你可能想.on() – Liam

+0

即時通訊使用1.8.3版本 – thormayer

+0

是的,你需要使用'.on'。 '.live'已棄用。 [這是文檔](http://api.jquery.com/on/) – Liam

回答

1

嘿,這是一個jQuery版本的問題.on已經取代了。由於生活的一些問題,這些問題可以此鏈接查看,

What's the difference between jQuery .live() and .on()

,你可以寫你這樣的代碼。

$(document).on('change','.myCheckbox:checkbox',function() { 
// your code 
}); 
0

用途:

的jQuery 1.7進一步

$(document).on('change','.myCheckbox:checkbox',function() { 
//.. 
}); 

對於舊版本

$('.myCheckbox:checkbox').live('change',function() { 

}); 
2

試試這個:

$(document).on('change', '.myCheckbox:checkbox', function() { 

}); 

順便說一句,live()被棄用的JQ uery版本1.7,您應該使用on()來代替。

1

使用

$(document).on('change','.myCheckbox:checkbox',function() { 
//.. 
} 

由於jQuery的1.7版本中,()方法是爲bind(), live()delegate()方法的新的替代。

注:事件處理程序使用on()方法,才能既爲當前和未來元素的工作(如通過腳本創建一個新的元素)

2

您應該使用.on(升級你的jQuery版本1.7本附)。

的語法是:

$('.yourCheckboxContainer').on('change', '.myCheckbox:checkbox', function() { 

}); 
0

我如何理解你的問題,它不是.live.on。這是關於你先用你的現有代碼的新的複選框添加更改偵聽器,然後添加到頁面就像

$(document).append($("<input type="checkbox" />")); 

更改偵聽器不使用它。

這很正常,因爲添加偵聽器時不存在新的複選框。添加偵聽器時,必須將偵聽器添加到新的複選框。

$(document).append($("<input type="checkbox" />").change(whatever));