1
我有我的網站上的複選框,每個代表一個事件名稱。如何動態綁定和解除推送上的事件
我綁定和解除綁定到beckboxes上的事件庫,在默認情況下在站點加載所有checkboxex。 這是我的代碼:
var pusher = new Pusher('secret');
var channel = pusher.subscribe('latest-news');
$("input:checkbox[name=category]:checked").each(function()
{
channel.bind($(this).val(), function(data) {
getNews(data.id);
});
});
function getNews(ids)
{
$.post("show", {id: ids})
.done(function(data) {
$(".c").prepend(data);
});
}
這個代碼反應複選框改變:
$(document).ready(function() {
$('input:checkbox[name=category]').click(function() {
var $this = $(this);
// $this will contain a reference to the checkbox
if ($this.is(':checked')) {
alert('yes');
channel.bind($(this).val(), function(data) {
getNews(data.id);
});
} else {
alert('no');
channel.unbind($(this).val(), function(data) {
});
}
});
});
它工作正常,問題是當有人取消再一個複選框再次檢查什麼發生的事情是,他將得到每封郵件的兩倍。 那麼什麼是正確的方式來動態綁定和解除綁定事件,而無需綁定兩次相同的事件。 謝謝
感謝它現在有效 – 2013-05-08 16:54:51