假设选中/取消选中复选框时,我希望发生特定行为。
现在,如果我的代码中有多个点,我将复选框设置为选中/取消选中,我必须经历相同的逻辑。
我可以用什么方法封装选中复选框时发生的逻辑,然后重新使用该逻辑?
答案 0 :(得分:5)
我的猜测是,您目前正在绑定点击事件处理程序,如下所示:
$('some-selector').click(function (event)
{
// do fancy stuff here
});
要封装该逻辑,您只需要使用匿名函数切换到可以重用的函数,如下所示:
function handleClicks(event)
{
// do fancy stuff here
}
$('some-selector').click(handleClicks);
$('some-other-selector').click(handleClicks);
怎么样?
我可能还会猜测你正在编写和重写的逻辑是将“check-all”类型的复选框连接到一组复选框。我最近写了一个jQuery插件来处理这类事情。
我从来没有把它正确地上传到GitHub - here's the gist。如果您想真正使用它,请告诉我,我可以解释它的用法 - 它非常简单。
答案 1 :(得分:0)
只是扩展'熊会吃掉你'所说的使用非匿名函数,你应该把你自己的函数库集成到jquery:
像这样创建你的功能
$.fn.handleClicks = function (){
$(this).click(function(event){
alert('Click');
return false
})
}
然后你就可以像这样使用它们,让事情变得更整洁,代码也更少。 IMO;
$('a').handleClicks();