(59) 解决在列表视图复制导致打开详细内容

现象:
在列表视图中,当你要复制一个内容,就触发click事件,就打开form视图了
为了区分click mousedown mousemove muuseup 事件,从而放弃click事件
用后面那几个事件组合来解决是要打开,还是复制内容事件

改动代码如下:
\addons\web\static\src\js\view_list.js

var hasMove =false;
        this.$current = $(‘<tbody>‘)
            .delegate(‘input[readonly=readonly]‘, ‘click‘, function (e) {
                /*
                    Against all logic and sense, as of right now @readonly
                    apparently does nothing on checkbox and radio inputs, so
                    the trick of using @readonly to have, well, readonly
                    checkboxes (which still let clicks go through) does not
                    work out of the box. We *still* need to preventDefault()
                    on the event, otherwise the checkbox‘s state *will* toggle
                    on click
                 */
                e.preventDefault();
            })
            .delegate(‘th.oe_list_record_selector‘, ‘click‘, function (e) {
                e.stopPropagation();
                var selection = self.get_selection();
                var checked = $(e.currentTarget).find(‘input‘).prop(‘checked‘);
                $(self).trigger(
                        ‘selected‘, [selection.ids, selection.records, ! checked]);
            })
            .delegate(‘td.oe_list_record_delete button‘, ‘click‘, function (e) {
                e.stopPropagation();
                var $row = $(e.target).closest(‘tr‘);
                $(self).trigger(‘deleted‘, [[self.row_id($row)]]);
            })
            .delegate(‘td.oe_list_field_cell button‘, ‘click‘, function (e) {
                e.stopPropagation();
                var $target = $(e.currentTarget),
                      field = $target.closest(‘td‘).data(‘field‘),
                       $row = $target.closest(‘tr‘),
                  record_id = self.row_id($row);
               
                if ($target.attr(‘disabled‘)) {
                    return;
                }
                $target.attr(‘disabled‘, ‘disabled‘);

// note: $.data converts data to number if it‘s composed only
                // of digits, nice when storing actual numbers, not nice when
                // storing strings composed only of digits. Force the action
                // name to be a string
                $(self).trigger(‘action‘, [field.toString(), record_id, function (id) {
                    $target.removeAttr(‘disabled‘);
                    return self.reload_record(self.records.get(id));
                }]);
            })
            .delegate(‘a‘, ‘click‘, function (e) {
                e.stopPropagation();
            })
            .delegate(‘tr‘, ‘mousedown‘, function (e) {

hasMove=false;
            })

.delegate(‘tr‘, ‘mousemove‘, function (e) {

hasMove=true;
            })

.delegate(‘tr‘, ‘mouseup‘, function (e) {
                if (hasMove){

}else{
                var row_id = self.row_id(e.currentTarget);
                if (row_id) {
                    e.stopPropagation();
                    if (!self.dataset.select_id(row_id)) {
                        throw new Error(_t("Could not find id in dataset"));
                    }
                    self.row_clicked(e);
                }
                }
                hasMove =false;
            });

原文地址:https://www.cnblogs.com/toby2chen/p/8145808.html

时间: 2024-08-28 19:08:14

(59) 解决在列表视图复制导致打开详细内容的相关文章

解决超过5000阀值无法显示列表视图的问题

当我将列表视图阀值设置回到5000后,使用Adam提供的如下脚本对站点进行了更新 $app=Get-SPWebApplication http://apps.westrac.com.cn/ $app.UnthrottledPrivilegedOperationWindowEnabled=$true $app.DailyUnthrottledPrivilegedOperationsDuration=24 $app.Update()

MultiType 复杂列表视图新写法

Demo:https://github.com/baiqiantao/MultiTypeTest.git GitHub:https://github.com/drakeet/MultiType compile 'me.drakeet.multitype:multitype:3.1.0' MultiType 介绍 在开发我的 TimeMachine 时,我有一个复杂的聊天页面,于是我设计了我的类型池系统,它是完全解耦的,因此我能够轻松将它抽离出来分享,并给它取名为 MultiType. 从前,比如

(转)关闭WordPress自动加载的Open Sans字体,总是连接googleapi.com,导致打开wordpress很慢

转自http://www.xuanfengge.com/turn-off-automatic-loading-wordpress-open-sans-fonts.html 在网上搜了一番,有四种方法. (1)安装别人针对这个问题开发好的屏蔽加载谷歌字体的插件 (2)修改过滤函数function.php (3)自己手动替换到加载谷歌字体的路径 (4)使用GoAgent 我使用了第一种方法来解决问题, 下载插件: 1. 插件一 名称:Remove Open Sans font Link from W

列表视图ListView之二

在android开发中ListView是比较常用的组件,它以列表的形式展示具体内容,并且能够根据数据的长度自适应显示. 在上一章,我们采用ArrayAdapter填充ListView,本章我们了解一下SimpleAdapter的应用. 一.SimpleAdapter应用 1.打开"res/layout/activity_main.xml"文件. 完整代码如下: <?xml version="1.0" encoding="utf-8"?>

Sharepoint 2013列表视图和字段权限扩展插件!

记得2014年春节期间,有博客园的网友通过QQ向我咨询Sharepoint 2013列表视图和字段权限扩展,因为之前他看到我博客介绍Sharepoint 2010列表视图和字段的权限控制扩展使用,问有没有这方面的列表权限扩展插件?我告诉他Sharepoint 2010的列表权限扩展插件并不能在Sharepoint 2013中使用,不能向上兼容的,且Sharepoint 2013的功能也有所升级了,系统底层架构已发生了一些变化.由于他需要在Sharepoint 2013项目中使用到此功能,有大量的

SharePoint 2013无代码实现列表视图的时间段动态筛选

本文介绍两种为列表视图设置时间段筛选器的方法.其中,第一个方法用于SharePoint Server,第二个方法同时还能用于SharePoint Foundation. 方法一:日期筛选器Web部件 先看一下接下来要用的列表,是一个任务列表: 为了实验方便,我们先建个页面,用来放置目标列表视图和筛选器. 1.打开SPD,选择左侧的“网站页面”,点击功能区里的“新建”->"Web部件页". 如果是已有页面,则右键高级模式编辑. 2.找到页面主要区域的WebPart Zone,在其中

【Anroid】第9章 列表视图(1)--ListView相关类及其适配器

分类:C#.Android.VS2015: 创建日期:2016-02-18 一.简介 列表视图(ListView)是Android应用程序中使用最频繁的UI组件,从无处不在短菜单选项列表到冗长的联系人或internet收藏夹列表--都会用它来实现. ListView控件的用法非常灵活,既可以使用内置的视图呈现基本的样式,也可以用自定义视图呈现各种特殊的视觉效果. 要完全掌握Android提供的ListView控件的用法,需要解决下面的问题: (1)如何用Android内置的视图呈现列表视图中的每

列表的复制

引用是指保存的值为对象的地址.在 Python 语言中,一个变量保存的值除了基本类型保存的是值外,其它都是引用,因此对于它们的使用就需要小心一些.下面举个例子: 问题描述:已知一个列表,求生成一个新的列表,列表元素是原列表的复制 复制代码代码如下: a=[1,2]b=a 这种做法其实并未真正生成一个新的列表,b指向的仍然是a所指向的对象.这样,如果对a或b的元素进行修改,a,b的值同时发生变化. 解决的方法为: 复制代码代码如下: a=[1,2]b=a[:] 这样修改a对b没有影响.修改b对a没

WorldWind源码剖析系列:插件列表视图类PluginListView和插件列表视图项类PluginListItem

WorldWind中的插件类是个庞大的类,可以说从软件设计层面上统筹可扩展的插件体系的设计思想是WorldWind中的精华,值得学习和借鉴.插件体系中的所用到的类可以分为两大类,一类是插件类Plugin及其派生类,另外一类是插件类中的界面类,如PluginDialog.PluginInstallDialog.插件列表视图类PluginListView和插件列表视图项类PluginListItem等.这些类之间的关联关系图如下所示.本节主要介绍插件类中的界面类. 插件列表视图类PluginList