【发布时间】:2013-05-08 10:31:23
【问题描述】:
我的网站上有复选框,每个复选框都代表一个事件名称。
i 绑定和取消绑定到基于复选框的事件,在站点加载时,默认情况下会选中所有复选框。 这是我的代码:
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) {
});
}
});
});
它工作正常问题是当有人取消选中复选框然后再次检查发生的情况时,他会收到每条消息两次。 那么动态绑定和取消绑定到事件而不绑定到同一事件两次的正确方法是什么。 谢谢
【问题讨论】: