【问题标题】:Not working jQuery change function when right click checkbox右键单击复选框时无法使用jQuery更改功能
【发布时间】:2016-09-19 08:47:58
【问题描述】:

我有以下问题, 有,如果我右键单击表格行,复选框被选中。

这是右击复选框选中的代码。

$('tr.check').contextmenu(function (e) {
        $(this).find('input[type="checkbox"].check_row').prop('checked', true);
        return false;
  });

但问题是我想在更改复选框后获得row id 号码。 这样做的正确方法是什么??

【问题讨论】:

  • 你有任何绑定到复选框的更改事件吗?你的问题是如何触发它?
  • @A.Wolff :是的,这就是我想要的。
  • 所以它会这样做:$(this).find('input[type="checkbox"].check_row').prop('checked', true).trigger('change');
  • 感谢您的支持。但它还没有工作。
  • 您能否发布一些用于此表格的 HTML,以便我可以尝试帮助您?

标签: jquery checkbox right-click


【解决方案1】:

我找到了我真正想要的那个。

function populate_context_menu($object){
                var ischecked = $($object).is(':checked');
                var jsonString = JSON.stringify(values);

                var ischecked = $($object).is(':checked');
                if (ischecked)
                {
                    $("#checked-a").fadeIn(200);

                    jQuery.ajax({
                        type: "POST",
                        url: "<?php echo base_url(); ?>" + "files/dropdown_menu",
                        dataType: 'json',
                        data: {files_ids: jsonString},
                        success: function (res) {
                            if (res)
                            {
                                $("div#result").show();
                                $("div#value").html(res.jsonString);
                            }
                        }
                    });

                } else {
                    if (values.length === 0) {
                        $("#checked-a").fadeOut(200);
                    }
                }
            };


 $(".selected_check").change(function () {

                    populate_context_menu(this);

            });

这是用于右键单击

$('tr.check').contextmenu(function (e) {
                $cb = $(this).find('input[type="checkbox"].selected_check');
                $($cb).attr('checked', 'checked');                                       
                populate_context_menu($cb);

                return false;
            });

【讨论】:

    【解决方案2】:

    当您使用prop()attr() 方法选中或取消选中时,您必须使用change()trigger('change') 触发事件。

    $('tr.check').contextmenu(function (e) {
            $(this).find('input[type="checkbox"].check_row').prop('checked', true);
            $(this).find('input[type="checkbox"].check_row').change(); // trigger change event
            //OR
            //$(this).find('input[type="checkbox"].check_row').trigger('change'); 
    
             return false;
      })
    

    ;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-08
      • 2014-09-30
      • 1970-01-01
      • 2015-06-01
      • 1970-01-01
      • 2011-10-10
      • 2018-11-18
      相关资源
      最近更新 更多