在上下文菜单上,在 HTML 表中追加行时不起作用
oncontextmenu not working when append rows in HTML table
>我正在从数据库中获取 70 条记录并将其加载到 html 表中,当用户从 1 条记录向下滚动到 70 条记录时,在滚动事件调用和接下来的 70 条获取时,例如限制 70、获取 140 条记录并附加到已显示的记录。这样我也通过添加一个类在所有行中使用右键单击或 OnContextMenu 函数。当用户右键单击表的任何数据行时('上下文菜单',函数(){});事件在前 70 条记录中调用,这些记录默认提取,但不在滚动后附加前 70 条记录的下 70 条记录中调用。请帮助我解决这个问题,为什么在上下文菜单事件上没有调用??我的代码是。
默认情况下,前 70 条记录显示在表格行中
echo '<tr class="mute_ref_link_cls" id="' . $mm->msn . '_' . str_replace(array('_dup', '-dup'), '', $mm->name) . '_' . $mm->customer_id . '" onClick="mute_ctrl_fn(' . $mm->customer_id . ');openSubDiv(' . $mm->cid . ',' . $mm->customer_id . ',''' . $mm->f_id . ''',''' . $mm->msn . ''',''info'',''' . str_replace(array('_dup', '-dup'), '', $mm->name) . ''');">';
echo '<td class="muteClr with-tip" id="' . $mm->customer_id . '" title="' . $res . '"><a style="color:red" onClick="">' . str_replace('-dup', '', str_replace('_dup', '', $mm->name)) . '</a></td>';
echo '<td>';
echo ($mm->session_date_time > 0) ? date('d-M-Y H:i', strtotime($mm->session_date_time)) : 'N/A';
echo '</td>';
echo '</tr>';
**滚动下一个 70 条记录后,获取并附加到第 70 条记录的末尾
echo '<tr class="mute_ref_link_cls" id="'.$mm->msn.'_'.str_replace(array('_dup','-dup'), '', $mm->name).'_'.$mm->customer_id.'" onClick="mute_ctrl_fn('.$mm->customer_id.');openSubDiv('.$mm->cid.','.$mm->customer_id.','''.$mm->f_id.''','''.$mm->msn.''',''info'','''.str_replace(array('_dup','-dup'), '', $mm->name).''');">';
echo '<td class="muteClr with-tip" id="'.$mm->customer_id.'" title="'.$res.'"><a style="color:red" onClick="">'.str_replace('-dup', '', str_replace('_dup', '', $mm->name)).'</a></td>';
echo '<td>';
echo ($mm->session_date_time>0)?date('d-M-Y H:i', strtotime($mm->session_date_time)):'N/A';
echo '</td>';
echo '</tr>';
右键单击任何前 70 条记录时,我的 jquery 代码:
$('.mute_ref_link_cls').on('contextMenu', function (event, list)
{
$(this).trigger('click');
var str = this.id;
//getting msn and reference number as id on right click :: Ahmad Fraz
var dtz = str.split("_");
list.push({text: 'Add Reason', link: 'javascript:matchMMPinCodeForm(' + dtz[0] + ',' + dtz[1] + ',' + dtz[2] + ')', icon: 'blog'});
list.push({text: 'Cancel', link: 'javascript:pending(' + dtz[0] + ',' + dtz[1] + ',' + dtz[2] + ',''nf503698'')', icon: 'delete'});
});
理想情况下,您应该使用事件委派对动态添加到 DOM 的元素进行事件绑定。
在您的情况下,它应该是:
$('table').on('contextMenu', '.mute_ref_link_cls', function (event, list)
{
$(this).trigger('click');
var str = this.id;
//getting msn and reference number as id on right click :: Ahmad Fraz
var dtz = str.split("_");
list.push({text: 'Add Reason', link: 'javascript:matchMMPinCodeForm(' + dtz[0] + ',' + dtz[1] + ',' + dtz[2] + ')', icon: 'blog'});
list.push({text: 'Cancel', link: 'javascript:pending(' + dtz[0] + ',' + dtz[1] + ',' + dtz[2] + ',''nf503698'')', icon: 'delete'});
});
根据jQuery文档:http://api.jquery.com/on/
第一个参数是事件第二个可选是选择器第三个可选是处理程序的数据最后一个是事件的处理程序。
很抱歉拼写错误/代码对齐,因为我正在从手持设备回复。
相关文章:
- 追加Jquery后的Binding Click事件不起作用
- jquery 1.7追加后点击事件不起作用
- 单击事件不起作用后追加 - AngularJS
- 动态追加表行时,列切换不起作用
- jQuery追加函数在IE8中不起作用
- 将查询选择器保存在要追加的变量中不起作用
- 在上下文菜单上,在 HTML 表中追加行时不起作用
- 在 Java 脚本中使用追加时 HTML 标记不起作用,但在执行硬编码时 html 代码工作正常
- 追加 jquery 不起作用
- 额外追加后点击功能不起作用
- function(){如果淡出,则追加}不起作用
- Jquery:动态追加到context.childNodes[4]不起作用
- 单击时克隆和追加会使多个元素和切换不起作用
- 来自数组的 IE 追加子项不起作用
- Ajax 函数在 JQuery 追加中调用时不起作用
- 剑道工具栏追加不起作用
- jquery追加不起作用
- 可拖放和拖拽追加不起作用
- jQuery的点击对追加不起作用
- jQuery追加不起作用(将css添加到head)