【问题标题】:Selected Row context menu appreared出现选定行上下文菜单
【发布时间】:2011-10-15 17:06:44
【问题描述】:

我想为所选行实现上下文菜单。一次,可以选择一行,如果用户右键单击它,应该会弹出上下文菜单。如果用户单击其他未选择的行,则不应弹出上下文菜单。

我的代码已给出;请给我一个想法?

jQuery:

jQuery(document).bind("contextmenu", function(e) {
     jQuery('#myMenu').hide();
     return false;
     });

     jQuery('.even').bind("contextmenu", function(e) {    
         jQuery('#myMenu').css({        
             top: e.pageY+'px',        
                 left: e.pageX+'px'    
                 }).show();    
         return false;


     });

     jQuery('.odd').bind("contextmenu", function(e) {    
         jQuery('#myMenu').css({        
             top: e.pageY+'px',        
                 left: e.pageX+'px'    
                 }).show();    
         return false;


         });

上下文菜单:

<ul id="myMenu" class="contextMenu">
      <li class="liReview"><a href="#liReview"><%include:SignforReview%></a></li>        
      <li class="liApprove"><a href="#liApprove"><%include:SignforApproval%></a></li>                    
      <li class="liRetReview"><a href="#liRetReview"><%include:RetractReviewSignature%></a></li>            
      <li class="liRetApprove"><a href="#liRetApprove"><%include:RetractReviewSignature%></a></li>            
</ul>

HTML -

<table> 
<tr id="line_<%=getData(ttEnl.line-num)%>" 
                        <%if:rowStyle(2)%>
                            class="even"
                            onmouseover="highlightLink(this,'even');" 
                            onmouseout="restore(this,'even');"
                            onclick="setSelected(this,'even');subjectSessionCheck('<%=getData(ttEnl.line-num)%>','<%=getData(ttEnl.rEnlRowid)%>','<%=getData(ttEnl.obj_enl)%>'); "
                        <%else:rowStyle%>
                            class="odd"
                            onmouseover="highlightLink(this,'odd');"
                            onmouseout="restore(this,'odd');"
                            onclick="setSelected(this,'odd');subjectSessionCheck('<%=getData(ttEnl.line-num)%>','<%=getData(ttEnl.rEnlRowid)%>','<%=getData(ttEnl.obj_enl)%>'); "
                        <%end:rowStyle%>
<td>.....</td>
<td>.....</td>
<td>.....</td>
</tr>
</table>

【问题讨论】:

    标签: jquery contextmenu


    【解决方案1】:

    您的代码几乎就在那里。你只是错过了一些东西:

    1. 在你的css类上,你必须设置position: 'absolute'

    2. 当您渲染选定的行时,您已经添加了一个名为rowselected 的类。您可以通过设置 class="even rowselected" 或使用 $(selector).addClass('rowselected')

    3. 您必须将选择器类更改为仅选择 $('.even.rowselected, .odd.rowselected')

    http://jsfiddle.net/rkw79/58dRL/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-26
      • 2011-08-01
      相关资源
      最近更新 更多