2010-12-15 44 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