2011-11-18 49 views
2

我想以下几点:jQuery的绑定改变CSS

$('table.table_record_even').bind("contextmenu", function(e) { 
    $('#right_menu').css({ 
     top: e.pageY+'px', 
     left: e.pageX+'px' 
    }).show(); 
    return false; 

    $(this).css({"background":"#FFFBCC"}); 

}); 

在桌子上右击的CSS不会改变。有人知道如何解决它?

日Thnx

编辑

我已经改变了代码一点点,我做了一个小提琴解释更好一点。正如你所看到的,点击鼠标右键可以移除悬停类。

http://fiddle.jshell.net/9Ku7h/5/

回答

2

你正在返回处理CSS之前虚假的;

$('table.table_record_even').bind("contextmenu", function(e) { 
     $('#right_menu').css({ 
      top: e.pageY+'px', 
      left: e.pageX+'px' 
     }).show(); 


     $(this).css({"background":"#FFFBCC"}); 
    return false; 

    }); 
1

这是因为return声明,只是将其移动到你的函数的底部:

$('table.table_record_even').bind("contextmenu", function(e) { 
    $('#right_menu').css({ 
     top: e.pageY+'px', 
     left: e.pageX+'px' 
    }).show(); 
    $(this).css({"background":"#FFFBCC"}); 
    return false; 

}); 
1

尝试:

$('table.table_record_even').bind("contextmenu", function(e) { 
    $('#right_menu').css({'position':'absolute', 
     "top": e.pageY+'px', 
     "left": e.pageX+'px' 
    }).show(); 


    $(this).css({"background":"#FFFBCC"}); 
    return false; 

}); 
+0

我已经尝试过,但事实并非如此工作。 –

+0

@LeonvanderVeen立即尝试 –

+0

@LeonvanderVeen http://jsbin.com/anasak/edit#javascript,html –

2
$('table.table_record_even').mousedown(function(e) { 
    if (e.which === 3) { 
     /* Right Mousebutton was clicked! */ 
     $('#right_menu').css({ 
      top: e.pageY+'px', 
      left: e.pageX+'px' 
     }).show(); 

     $(this).css({"background":"#FFFBCC"}); 
     return false; 
    } 
});