小编Mad*_*ist的帖子

Jquery UI draggable:如果Ctrl按下则克隆

我有一个可拖动的表格单元格列表,可以放到第二个表格上.它们被设置为克隆,因为如果从中拖动项目,原始表应保持不变.

现在我希望能够将第二个表内的已删除元素从一个单元格移动到另一个单元格.但是如果在拖动第二个表内的元素时按下Control键,则应克隆该元素.现在我不知道如何优雅地实现这最后一部分.

到目前为止,我的代码只缺少Ctrl部分的克隆:

$(".drag_clone").draggable({helper: "clone"});
$(".draggable").draggable({revert: "invalid"});
$(".droppable").droppable(
    {
        drop: function(event, ui) {
            if (ui.draggable.hasClass("draggable")) {
                ui.draggable.remove();
            }
            $('<div class="draggable"></div>').text(ui.draggable.text()).draggable({revert: "invalid"}).appendTo(this);
        }
    });
Run Code Online (Sandbox Code Playgroud)

我想要实现的行为是,如果一个元素被拖动到表的另一个单元格,它应该被移动到那里.如果在按下Ctrl键的同时拖动元素,或者如果它是应始终克隆的多个预定义元素之一,则应创建元素的副本并将其插入目标单元格.

在我粘贴的代码中,我正在创建一个新元素,然后将其附加到droppable.这适用于克隆可拖动,但对于非克隆可拖动,原始拖动仍然存在,所以我最终复制它.

如果我只是将draggable附加到目标droppable,则可以从原始位置删除可拖动的克隆.

编辑: 我发现了问题,我使用的是ui.draggable,它指的是原始的draggable,而不是ui.helper,它指的是克隆的.我在这里添加最终的工作代码作为参考:

$(".drag_clone").draggable({helper: "clone"});
$(".draggable").draggable({revert: "invalid"});
$(".droppable").droppable(
    {
        hoverClass: 'ui-state-hover',
        drop: function(event, ui) {
            ui.helper.remove()
            $('<div class="draggable"></div>').text(ui.draggable.text()).mousedown(function(event) 
                {$(this).draggable('option', {
                         helper : event.ctrlKey ? 'clone' : 'original' });
                         }).draggable({ revert: "invalid" }).appendTo(this);
        }
    });
Run Code Online (Sandbox Code Playgroud)

javascript jquery jquery-ui droppable draggable

5
推荐指数
1
解决办法
4930
查看次数

向所有已注册的设备广播通知

我正在尝试使用Google Cloud Messaging将推送通知添加到我的Android应用程序中.我不需要任何花哨的东西,我只是想在某些事件发生时通知应用程序的所有用户.

我不需要通知个人用户,我总是希望将通知发送给每个用户.这是一个内部应用程序,用户数量非常有限,不会公开发布.

现在,据我所知,我需要为每个要发送的通知注册ID.我真的不想跟踪那些,因为我不需要识别单个设备.

  • 我可以在不使用任何注册ID的情况下直接向所有设备广播吗?
  • 如果没有,我如何获得所有注册设备的注册ID?我是否必须手动跟踪(在GCM通信之外)?

android google-cloud-messaging

5
推荐指数
1
解决办法
6238
查看次数

OpenGL ES Tracer不会在我的Nexus 10上收集任何数据

我正在尝试使用OpenGL ES Tracer,但它只是不收集任何数据.我进入以下屏幕,但跟踪文件仍然是emtpy:

在此输入图像描述

我也尝试过谷歌的OpenGLES20Complete示例应用程序,以排除我的应用程序的任何特定内容导致此问题,但它只是不起作用.

我正在关注OpenGL ES Tracer的文档,除了我正在使用IntelliJ IDEA并从那里启动Monitor工具.我正在使用带有Android 4.2的Nexus 10,因此它符合最低版本要求.

我现在还设法在不同的设备(Cyanogenmod 10上的三星Galaxy i9000)上尝试,并且OpenGL跟踪工作.因此,似乎有一些特定于Android设备上运行的硬件或操作系统的功能,禁用或启用跟踪.

我必须采取任何进一步的步骤或设置才能使其工作吗?可能是什么原因导致我无法收集任何OpenGL痕迹?

android opengl-es

5
推荐指数
1
解决办法
3653
查看次数

平滑滚动,具有惯性和边缘阻力/回弹

我通过触摸拖动和多点触控缩放实现了基本滚动以获得自定义视图.这很好用,但现在我想添加一些高级功能.

例如,在Google地图应用程序中,当您在屏幕上拖动时,停止拖动后它仍将继续移动一点(惯性).并且一些浏览器(例如IPad Safari)允许您将屏幕拖动到比网站的可见区域更远的位置,但屏幕将快速快速回到网站的边缘.

我现在想要实现类似的东西,但为了做到这一点,我需要在定期间隔发生触摸事件更改活动屏幕区域以执行动画.我怎样才能做到这一点?

java android touch

4
推荐指数
1
解决办法
7880
查看次数

GLSurfaceView.queueEvent不在GL线程中执行

我正在尝试从我的主要活动中为我的GLSurfaceView执行一些OpenGL命令。queueEvent据我所知,由于OpenGL渲染器在其自己的线程中工作,因此我必须使用。

queueEvent在我的GLSurfaceView中调用以下代码:

queueEvent(new Runnable(){
     @Override
     public void run() {
          renderer.doSomething(data); //executes some OpenGL commands
          requestRender();
}});
Run Code Online (Sandbox Code Playgroud)

doSomething()方法绑定纹理并编译着色器。

这是行不通的。glCreateProgram返回0,例如在GL线程外执行GL命令时发生。如果从渲染器中执行相同的代码,也可以正常工作。因此,看来我执行的命令queueEvent不是在GL上下文中执行的,而是在错误的线程中执行的。

我的理解是调用queueEvent足以在GL线程内执行代码吗?我还有什么要做的,还是现在我怎么称呼它的任何错误?

android opengl-es

4
推荐指数
1
解决办法
2227
查看次数

如何获得更有用的GLSL编译错误?

我正在尝试在Android上学习OpenGL ES,但有一点让人感到非常沮丧和困难.我无法从GLSL编译器获得任何可用的错误消息.当你没有得到任何有用的反馈,学习GLSL,除了"它编译"和"它不编译"是相当困难的.

我发现glGetProgramInfoLog应该包含来自编译器的错误,但我唯一可以解决的问题就是这样

由于无效的片段着色器,链接失败.

我使用正确的命令来获取编译器错误,还是我应该使用不同的命令?是否有可能从GLSL编译器获得更有意义的错误消息?

我在Android 4.3和Nexus 10上使用OpenGL ES 3.0作为目标.

android opengl-es glsles

3
推荐指数
1
解决办法
2277
查看次数

使用python检查2个文件的新行独立标识的最佳方法

我试过了

filecmp.cmp(file1,file2)
Run Code Online (Sandbox Code Playgroud)

但它不起作用,因为除了换行符之外,文件是相同的.在filecmp或其他一些便利功能/库中是否有选项,或者我必须逐行读取这两个文件并进行比较?

python compare file

2
推荐指数
1
解决办法
1266
查看次数

用PHP获得下一个/上一个ISO周和年

我需要一个以ISO周和ISO年为参数的函数,并返回下一个ISO周和年(以及返回前一个ISO周/年的函数).

php date week-number

2
推荐指数
1
解决办法
2819
查看次数

XAMPP正在删除带有下划线的HTTP标头

我正在尝试运行一个PHP应用程序,它依赖于通过HTTP头提供附加信息的特定浏览器.具体来说,它是EVE Online游戏浏览器,但我的问题在于XAMPP(特别是XAMPP USB Lite 1.8.0)处理这些标头的方式.

我观察到的是当我在Windows上使用XAMPP尝试它时,我需要的特定头文件HTTP_EVE_TRUSTED是不可用的$_SERVER,但如果我在Debian上使用Apache安装,它就在那里.

我使用一个简单的脚本来输出标题:

<?php 
print_r($_SERVER);
?>
Run Code Online (Sandbox Code Playgroud)

当脚本托管在XAMPP上时,只丢失了这一个标头.我怀疑XAMPP有一些奇怪的默认配置剥离某些标题,可能是一个安全功能,但我找不到任何相关的东西.

根据Nacerridine的建议,我使用Tamper Data for Firefox重现了这个问题,我发现只删除包含下划线的标题.

什么可能导致此标头在XAMPP上不可用而在其他服务器上不可用?我该如何解决这个问题?

php xampp http http-headers

2
推荐指数
1
解决办法
1605
查看次数

如何在Android上禁用和启用菜单选项?

我正在尝试禁用并启用菜单选项,但它显示错误:Nullpointer异常.

这是我的代码:

mnu.xml:

<?xml version="1.0" encoding="utf-8"?>
<menu
  xmlns:android="http://schemas.android.com/apk/res/android">

<item android:id="@+id/Add" android:title="Add" android:icon="@drawable/add"/>

<item android:id="@+id/bill_menu" android:title="Bill" android:enabled="false" />


</menu>
Run Code Online (Sandbox Code Playgroud)

我在我的java类中使用过

 //creating menu
    public boolean onCreateOptionsMenu(Menu menu) {

    MenuInflater inflater = getMenuInflater();

    inflater.inflate(R.menu.mnu, menu);



    MenuItem mi=((MenuItem) this.findViewById(R.id.bill_menu));
    mi.setEnabled(true);    
    }

    return true;

    }
Run Code Online (Sandbox Code Playgroud)

android contextmenu

1
推荐指数
1
解决办法
1万
查看次数