2010-12-15 43 views
2

我有一个容器内的输入文本框。 这个容器是可拖动的,但现在我不能再输入文本到文本框中了。 可能因为您必须在文本框内单击以键入, 现在鼠标向下意味着拖动!拖放禁用输入文本框!帮我?

或者,也许它的东西完全地不同

有谁知道我可以解决这个问题? 在此先感谢

,你可以在这里检查代码,但它非常.. http://www.jsfiddle.net/AVG5a/

+2

你应该显示一些代码。这甚至可以帮助那些从未遇到过这个问题的人帮助你。否则你会失去很多帮手 – 2010-12-15 16:11:21

+1

我同意听起来像一个有趣的问题,但很难回答没有代码! – Trufa 2010-12-15 16:15:32

+0

感谢您的评论,我只是认为这将是太多,我可能会吓跑大家,但好吧感谢您的反馈 – Opoe 2010-12-15 16:15:43

回答

1

使用jQuery[docs]jQuery UI[docs]我差不多完成了转换为jQuery,当我完成它时,我会发布一个jsFiddle链接。

在这里你去:http://jsfiddle.net/pswRh/

后您学习jQuery和jQuery UI,它很容易使一个元素拖动,和 - 可选的 - 禁止与指定的子元素拖动。

HTML

<div id='myDiv'> 
    <img src='http://dummyimage.com/100x100.png' id='pic' /> 
    <input id='textInput' /> 
</div> 

CSS(可选)

#myDiv { 
    width: 150px; 
    height: 200px; 
    border: 1px solid; 
    background: blue; 
    color: white; 
} 

的JavaScript

$('#myDiv').draggable({ 
    cancel: '#textInput' 
}); 

瞧!你刚刚制作了一个可拖动的div,但仍然可以输入输入字段,因为它不会拖动该元素。

或者,您可以指定一个句柄。这样,你只能拖动指定的孩子的股利。

HTML,CSS

相同先前

的JavaScript

$('#myDiv').draggable({ 
    handle: '#pic' 
}); 

指定由逗号(即'#el1, #el2, #el3')分离的多个元件。

+0

非常感谢你!!!!非常有帮助,并开始学习jquery马上!谢谢Nyuszika7H !! – Opoe 2010-12-18 15:04:10

+0

不客气,另外,我已经删除了柜台,因为他们如果你需要这样的东西,可以使用[:eq()](http://api.jquery.com/eq-selector“:eq()Selector - jQuery API” )或[.eq()](http://api.jquery.com/eq“.eq() - jQuery API”)。 – nyuszika7h 2010-12-18 15:33:34

2

一下添加到appendFunction

document.getElementById("inputId0").addEventListener("mousedown", function(e) { 
    e.stopPropagation(); 
}, false); 

这将取消0​​事件与ID的元素inputId0

+0

我有一个与ID的柜台应该是这样的; document.getElementById(“inputId”+ counter).addEventListener(“mousedown”,function(e){e.stopPagagation();},false; – Opoe 2010-12-15 16:20:49

+1

yes可以,但为什么复选框和按钮有效? – 2010-12-15 16:27:59

+0

按钮上方的代码不再工作了,奇怪的 – Opoe 2010-12-15 16:32:23