嗨,我有一个函数,我想通过单击元素或通过元素作为参数调用函数来传递元素.这就是我所拥有的:
function change_btm_cat(item) { $('div.prod_matrix').removeClass('block'); $('div.prod_matrix').addClass('none'); $('div.prod_matrix#'+item.attr('id')).removeClass('none'); $('div.prod_matrix#'+item.attr('id')).addClass('block'); $('div.btm_cat').removeClass('green_grad'); $('div.btm_cat').addClass('grey_grad'); item.removeClass('grey_grad'); item.addClass('green_grad'); //ps. i know its messy,just testing stuff }
我可以轻松地使用它来工作:
$('div.btm_cat').click(function() { change_btm_cat($(this)); });
但当我尝试:
$('another.element').live('click',function() { change_btm_cat($('div.btm_cat#7')); });
它似乎没有通过任何功能.
有关工作示例,请参阅jsFiddle:http://jsfiddle.net/rb7ZG/1/
解决方法
你对选择器有点过分了,试试这个.
$('another.element').live('click',function() { change_btm_cat($('#7')); });
由于您拥有ID并且ID几乎是您可以拥有的最精致的唯一信息(作为标识符),因此不需要其他优化.
如果我错过了您的目标,请告诉我.