0
我正在使用ajaxify.js插件https://github.com/browserstate/ajaxify动态加载内容。jQuery + Javascript:合并document.ready和ajax之间的重复函数加载
我有一些click
功能,我绑定在文档就绪,但必须另外把这些功能在我的ajax加载函数内重新绑定点击事件到新添加的内容。我以前曾尝试过使用一组live
函数,但它们不起作用。
无论如何,我有两次下面的代码,一次在document.ready(function(){ })
里面,并且在加载内容之后再次加入ajaxify.js。
我知道这是多余的,但我不确定如何去写函数,因为我可以在其他地方“包括”它们。我怎样才能优化这些功能,以便我可以合并它们并以有效的方式再次使用它们?
谢谢!
var $filterclear = $('.filters .filter-clear'),
filtercount = $filterclear.length,
$searchedfor = $('.searched-for'),
is_search = $searchedfor.length;
$filterclear.bind('click', function(){
var $me = $(this);
if(filtercount == 3) {
$('.clear-all.filter-clear').addClass('filter-out').fadeOut('fast');
$(this).addClass('filter-out').fadeOut('fast');
} else {
$(this).addClass('filter-out').fadeOut('fast');
}
if($me.hasClass('clear-all') || filtercount == 1) {
$filterclear.addClass('filter-out').fadeOut('fast');
if(is_search !== 0) {
$('.filters').fadeOut();
}
}
});
$('.tag.remove-term').bind('click', function(){
var $me = $(this),
mytext = $me.text(),
$myfilter = $('.filters .filter-clear:contains("'+ mytext +'")');
if(filtercount == 3) {
$('.clear-all.filter-clear').addClass('filter-out').fadeOut('fast');
$myfilter.addClass('filter-out').fadeOut('fast');
} else {
$myfilter.addClass('filter-out').fadeOut('fast');
}
});
$searchedfor.find('.filter-clear').bind('click',function(){
$searchedfor.fadeOut();
});
使用'live'事件肯定听起来像是应付动态页面的最佳方式。 “live”有什么问题? – 2012-02-18 23:07:24
它只是不工作! – 2012-02-19 00:43:08