2013-05-07 9 views
5

Genellikle, belirli bir metin parçası sürüklendiğinde ve bir HTML giriş öğesine bırakıldığında, işaretli metin bu giriş alanında imleç konumuna (ve mevcut herhangi bir metne eklenir) kopyalanır. Ben (örn) davranış benzer şekilde ateş adres alanını jQuery kullanarak o davranışı değiştirmek istiyoruz, yani:Metin jQuery kullanılarak bir giriş öğesinin sürüklendiği ve bırakıldığı zaman tanınmasının bir yolu var mı?

  • Metin (her zamanki gibi) yazarak eklenmiş ve değiştirilebilir.
  • Metin dışarıdan sürüklendiğinde ve giriş öğesine bırakıldığında, giriş içindeki tüm mevcut metin sürüklenen metinle değiştirilir.
  • Metin, giriş içinde sürüklendiğinde ve bırakıldığında, sürüklenen metin, imlecin konumuna taşınır. (güzel olması gereken özellik, ancak bu kadar önemli değil)

Bunu başarmanın bir yolu bilen var mı? Herhangi bir yardım takdir edilir.

Bana göre bu, bir tür "sürükle ve bırak" olayını tanımalı ve sürüklenmiş metne erişmem gerekiyor, ancak bunun mümkün olup olmadığını bilmiyorum. aklımda var senaryonun A (işlevsel olmayan) mock-up aşağıdaki gibi görünecektir:

HTML:

<p>drag-and-drop text into this:</p> 
<input id="giveittome" value="some text"></input> 
<p>other text</p> 
<p>more text</p> 
<p>whatever</p> 

JavaScript:

$('#giveittome').on('drag-and-drop' , function (event) { 
    $(this).val(event.getDraggedText()); 
}); 

source @ jsFiddle.

cevap

5

bu deneyin: (Bu en modern tarayıcılarda çalışır)

$('input').on('keydown change paste drop',function(event) { 
    var _this = this; 
    setTimeout(function() { 
     console.log(_this.value, event.type); 
    }, 0); //this timeout is necessary to get the value 
}); 

Fiddle: http://jsfiddle.net/maniator/7skY7/

+0

Yani HTML5 bu kısmı nedir? – Kiruse

+0

@ Derija93 yep :-) – Neal

+0

Düşünce öyle. ;) HTML5 bazı şık özellikler getiriyor. – Kiruse

İlgili konular