我在同一元素上有两个jQuery函数,结果相同。有没有办法缩短代码:
$(document).ready(function(){
$('#task_<?php echo $var_t; ?>').dblclick(function(){
if($('#taskd_<?php echo $var_t; ?>').is(':visible')){
$('.tlistd').hide();
$('.tlist').removeClass('t_ar');
}else{
$('.tlistd').hide();
$('.tlist').removeClass('t_ar');
$('#taskd_<?php echo $var_t; ?>').show();
$('#task_<?php echo $var_t; ?>').addClass('t_ar');
}
})
$('#td_arrow_down_<?php echo $var_t; ?>').click(function(){
if($('#taskd_<?php echo $var_t; ?>').is(':visible')){
$('.tlistd').hide();
$('.tlist').removeClass('t_ar');
}else{
$('.tlistd').hide();
$('.tlist').removeClass('t_ar');
$('#taskd_<?php echo $var_t; ?>').show();
$('#task_<?php echo $var_t; ?>').addClass('t_ar');
}
});
});
答案 0 :(得分:2)
是的,这是可能的。你应该创建函数并将此函数作为输入变量赋予事件处理函数非常简单。 (即.dbclick(),. click()等)。因为函数也是javasript中的对象。
$(document).ready(function(){
$('#task_<?php echo $var_t; ?>').dblclick(do_action_name);
$('#td_arrow_down_<?php echo $var_t; ?>').click(do_action_name);
function do_action_name()
{
if($('#taskd_<?php echo $var_t; ?>').is(':visible'))
{
$('.tlistd').hide();
$('.tlist').removeClass('t_ar');
}
else
{
$('.tlistd').hide();
$('.tlist').removeClass('t_ar');
$('#taskd_<?php echo $var_t; ?>').show();
$('#task_<?php echo $var_t; ?>').addClass('t_ar');
}
}
});
答案 1 :(得分:2)
创建一个函数并绑定它
$(document).ready(function(){
function myFunction(){
if($('#taskd_<?php echo $var_t; ?>').is(':visible')){
$('.tlistd').hide();
$('.tlist').removeClass('t_ar');
}else{
$('.tlistd').hide();
$('.tlist').removeClass('t_ar');
$('#taskd_<?php echo $var_t; ?>').show();
$('#task_<?php echo $var_t; ?>').addClass('t_ar');
}
}
$('#task_<?php echo $var_t; ?>').dblclick(myFunction);
$('#td_arrow_down_<?php echo $var_t; ?>').click(myFunction);
});