我正在使用jquery设置一个可拖动的界面来执行拖放操作.我有一个高大的物体(400px x 50px),我想放入一个小锚(100px x 100px).似乎为了触发"drop"和"over"事件,至少有一半的拖动容器必须在droppable容器的边界内,在这种情况下不会发生,因为拖动容器要大得多.有没有办法减少这种限制,以便这些事件会被激发?
我正在测试拖放API支持
if (!Modernizr.draganddrop) {
alert('No!');
}
else {
alert('Yes');
}
Run Code Online (Sandbox Code Playgroud)
但不知何故,它在IE8中显示"是",当然不支持html5 D&D API.
提前致谢
html5 internet-explorer drag-and-drop internet-explorer-8 modernizr
有没有办法从被拖动的元素中获取id(或其他一些属性值),当一个元素被删除时?
例如,在左边,我有一堆div,我可以将图像放入.在右边我有一个包含图像的div.当我将图像从右侧拖动到左侧的div时,我可以获得有关拖动[图像名称]的内容以及它在[div id]上删除的内容的信息.
如果我现在想要将图像从左边的div拖到右边的div,那么当我将图像放在右边的div上时,如何获得图像所在的div的id.
对不起,如果这令人困惑.
我正在使用Windows窗体应用程序.
在TextBox控件上的一个拖放操作期间,我想限制用户只提供一个文本文件.
// drag drop module for input text file in textbox starts here
private void textBoxInputTextFile_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop))
e.Effect = DragDropEffects.Copy;
else
e.Effect = DragDropEffects.None;
}
private void textBoxInputTextFile_DragDrop(object sender, DragEventArgs e)
{
if(e.Data.GetData(DataFormats.FileDrop, true))
{
// Check if it is a text file
// Okay if it is a text file or else give an error message
}
}
Run Code Online (Sandbox Code Playgroud)
此代码只是我之前的文件夹放置操作的示例,但现在我想将其限制为只有一个文件,而且也必须是文本文件.因此,当drop动作发生时,它应首先检查它是否是文本文件然后再做其他事情.
我怎么做?
这是现有可排序的http://jsfiddle.net/bcAH2/5的链接
只是复制代码,
<ul id="sortable">
<li class="ui-state-default">1</li>
<li class="ui-state-default">2</li>
<li class="ui-state-default">3</li>
<li class="ui-state-default four">4</li>
<li class="ui-state-default">5</li>
<li class="ui-state-default">6</li>
<li class="ui-state-default">7</li>
<li class="ui-state-default">8</li>
<li class="ui-state-default">9</li>
<li class="ui-state-default">10</li>
...
</ul>
Run Code Online (Sandbox Code Playgroud)
脚本
$(function() {
$( "#sortable" ).sortable();
$( "#sortable" ).disableSelection();
$("#sortable .four").css("height","190px");
});
Run Code Online (Sandbox Code Playgroud)
我想要实现的是用5 6 7 8这样的单元格填充单元格1 2 3下面的空格......是不是可以拖放?
我是在一个NSView中拖放,但从draggingEntered:未被调用过.代码:
#import <Cocoa/Cocoa.h>
@interface testViewDrag : NSView <NSDraggingDestination>
@end
@implementation testViewDrag
- (id)initWithFrame:(NSRect)frame
{
self = [super initWithFrame:frame];
if (self)
{
[self registerForDraggedTypes:[NSImage imagePasteboardTypes]];
NSLog(@"initWithFrame");
}
return self;
}
-(NSDragOperation)draggingEntered:(id<NSDraggingInfo>)sender
{
NSLog(@"draggingEntered");
return NSDragOperationEvery;
}
-(NSDragOperation) draggingUpdated:(id<NSDraggingInfo>)sender
{
NSLog(@"draggingUpdated");
return NSDragOperationEvery;
}
@end
Run Code Online (Sandbox Code Playgroud)
在界面构建器中,我将一个subView(类设置为testViewDrag)添加到主窗口.在日志中我可以看到initWithFrame日志,但是当我拖动时,日志中不会显示任何内容.
我错过了什么?
传统上,如果我单击浏览器上的链接并拖动,则"获取"的数据是URL及其名称,并且可以由目标应用程序(MS Word或Java Swing应用程序)使用.
我想在拖动时修改浏览器的默认行为以包含更多数据.
一个很好的应用是从谷歌搜索结果页面拖动.例如,如下图所示,当我从第一个结果区域(以黄色标记)的任何位置拖动时,我不仅要捕获页面的URL,还要捕获所有其他信息(如"Actions"的链接) ","在Mac OS中"链接在第一个结果的底部).
我不确定我需要得到这种行为.Javascript可能是我猜的一个解决方案(可能是一个扩展,使得javascript代码在所有加载的页面上运行?),但我根本不确定.任何指针/提示/建议都会很有用.

我已经实现了从Finder拖放到我的应用程序到NSTableView,我创建link了文档等.
但是,我想通过NSTableView中的拖动项进行删除操作,并将此行拖放到"废纸篓"图标上.我该怎么做才能正确?如何启用垃圾?
这是一个奇怪的问题,让我试着解释一下.我在c ++/MFC中编写了一个(基于对话框的)应用程序,支持拖放功能.
我在Windows 7上使用默认主题进行以下测试.我的应用程序正在屏幕上运行.它不是顶部窗口(按其z顺序)或换句话说它被其上面的其他窗口遮挡.
如果我开始从Chrome或Firefox网络浏览器中拖动链接或只是文本选择,首先进入任务栏上我的应用程序图标,图标会闪烁,我的应用程序会弹出屏幕(通过接收顶部的z顺序),所以我然后可以拖放到我的应用程序中.一切正常.
如果我从IE 9(版本9.0.8112,更新版本9.0.12)执行相同的操作,当我将所选文本或链接首先拖动到我的应用程序的任务栏图标,以使我的应用程序成为顶部窗口(按z顺序),应用程序图标继续闪烁,但它从未在屏幕上显示,就像Chrome或FF一样,因此我不得不放弃我的拖放.
知道为什么它会像IE一样发生,如果有办法解决它?
编辑:以下是我的评论的代码示例:
HRESULT __stdcall DragEnter(IDataObject* pDataObject, DWORD grfKeyState, POINTL pt, DWORD* pdwEffect)
{
//IDropTarget::DragEnter
m_fAllowDrop = QueryDataObject(pDataObject);
if(m_fAllowDrop)
{
//SUCCESS
// get the dropeffect based on keyboard state
}
else
{
//FAILURE
*pdwEffect = DROPEFFECT_NONE;
}
return S_OK;
}
BOOL QueryDataObject(IDataObject* pDataObject, int* pnOutDataType)
{
static FORMATETC fmtetc_file = {CF_HDROP, 0, DVASPECT_CONTENT, -1, TYMED_HGLOBAL};
static FORMATETC fmtetc_txt = {CF_UNICODETEXT, 0, DVASPECT_CONTENT, -1, TYMED_HGLOBAL};
BOOL bRes = FALSE;
HRESULT hr;
//See if our …Run Code Online (Sandbox Code Playgroud) drag-and-drop ×10
html5 ×2
javascript ×2
jquery ×2
jquery-ui ×2
c# ×1
c++ ×1
cocoa ×1
draggable ×1
droppable ×1
grid ×1
macos ×1
modernizr ×1
objective-c ×1
recycle-bin ×1
winapi ×1
winforms ×1