Создано контекстное меню выбранной строки - PullRequest
1 голос
/ 29 июля 2011

Я хочу реализовать контекстное меню для выбранной строки.Один раз можно выбрать одну строку, и если пользователь щелкнет по ней правой кнопкой мыши, появится контекстное меню.если пользователь щелкает другие строки, которые не выбраны, контекстное меню не должно появляться.

Мой код указан;Пожалуйста, дайте мне идею?

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>

1 Ответ

2 голосов
/ 29 июля 2011

Ваш код в значительной степени там. Вам просто не хватает нескольких вещей:

  1. в вашем классе CSS, вы должны установить position: 'absolute'

  2. когда вы визуализируете выбранную строку, вы добавляете в нее класс rowselected. Вы можете сделать это, установив class="even rowselected" или выполнив $(selector).addClass('rowselected')

  3. Вы должны изменить свой класс селектора, чтобы выбрать только $('.even.rowselected, .odd.rowselected')

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...