javascript - Jquery上下文菜单调用函数

标签 javascript jquery contextmenu

我想调用上下文菜单中的函数。我尝试过使用按钮,效果非常好。当我尝试放置在上下文菜单中时,我无法调用该函数。我用过这个库https://github.com/swisnl/jQuery-contextMenu用于上下文菜单。

我的 table :

<table id="ppmpsupplies" class="table table-bordered table-hover" cellspacing="0" width="100%">
              <thead>
                <tr>
                  <th>Code</th>
                  <th>General Description</th>
                  <th>Unit</th>
                  <th>Quantity</th>
                  <th>Estimated Budget</th>
                  <th>Mode of Procurement</th>
                  <th>Actions</th>

                </tr>
              </thead>
              <tbody>
                <?php foreach($items as $item){?>
                <tr>
                 <td><?php echo $item->id;?></td>
                 <td><?php echo $item->description;?></td>
                 <td><?php echo $item->unit;?></td>
                 <td><?php echo $item->quantity;?></td>
                 <td><?php echo $item->budget;?></td>
                 <td><?php echo $item->mode;?></td>                     
              </tr>
              <?php }?>

            </tbody>
            <tfoot>
              <td colspan="3"></td>
              <td>Total</td>
              <td></td>
            </tfoot>
          </table>

我的上下文菜单:

"edit": {
        name: "Edit",
        icon: "fa-pencil-square-o",
        callback: function(item, id) {
        $('#gcjmodal').on('click', edit_item('$item->id'));
        // $('#gcjmodal').click(edit_item('$item->id'));
        return true;
        }
        },
"delete": {
        name: "Delete",
        icon: "fa-trash-o",
        callback: function(item, id) {
        //$(this).delete_item('$item->id');
        // $(this).on('click', delete_item('$item->id'));
        return true;
        }
        },

我的功能:

    function edit_item(id) {
        save_method = 'update';
        $('#gcjform')[0].reset();
        $.ajax({
            url: "<?php echo site_url('ppmp/ajax_edit/')?>" + id,
            type: "GET",
            dataType: "JSON",
            success: function(data) {

                $('[name="id"]').val(data.id);
                $('[name="description"]').val(data.description);
                $('[name="unit"]').val(data.unit);
                $('[name="quantity"]').val(data.quantity);
                $('[name="budget"]').val(data.budget);
                $('[name="mode"]').val(data.mode);

                $('#gcjmodal').iziModal('open');
            },
            error: function(jqXHR, textStatus, errorThrown) {
                alert('Error get data from ajax');
            }
        });
    }
function delete_item(id) {
        if (confirm('Are you sure delete this data?')) {
            $.ajax({
                url: "<?php echo site_url('ppmp/delete_item')?>/" + id,
                type: "POST",
                dataType: "JSON",
                success: function(data) {
                    location.reload();
                },
                error: function(jqXHR, textStatus, errorThrown) {
                    alert('Error deleting data');
                }
            });

最佳答案

有问题的代码行是

$('#gcjmodal').on('click', edit_item('$item->id'));

当您将字符串传递给 edit_item 函数时(即 '$item->id')。

您需要使用 PHP 标签来解析它。所以该行应该是:

$('#gcjmodal').on('click', edit_item('<?php print $item->id ?>'));

关于javascript - Jquery上下文菜单调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44666419/

相关文章:

javascript - UI Router - 如何在状态之间存储数据而不将它们显式传递给 $state.go(...)?

javascript - 如何在 React TypeScript 中输出过滤后的待办事项列表

javascript - jstree 不兼容的复选框和类型插件

firefox - Firefox Addon SDK 中 page-mod 和 context-menu 之间的通信

WPF 用户控件上下文菜单可见性绑定(bind)

browser - 覆盖 Web 浏览器中的右键单击上下文菜单 - 优点和缺点

javascript - React Progress Bar - 当计数大于 100 时在单个栏上添加附加类

javascript - Firebase 管理 SDK - 删除响应不正确

javascript - 由于某种原因没有返回值

javascript - jquery datepicker 事件无法正常工作