2012-12-13 18 views
5

JQuery'de girdi seçimlerini dinlemek için herhangi bir olay var mı? Örneğin, bir metin girdisine foo_bar yazdım diyelim. Daha sonra fare ile foo kelimesini seçiyorum. Böylece olay 0, 2 (foo dizesinin konumu) döndürülmelidir.jQuery: giriş seçim aralığını getir

Bunu gerçekleştirmenin herhangi bir yolu var mı? Nereden başlayacağımı bilmiyorum, jQuery API sayfalarını bozguna uğratıyorum ama yardımcı olabilecek hiçbir şey bulamıyorum.

Girişte mousedown olaylarını dinlemekten bahsediyorum, ancak bir şekilde tıklamanın gerçekleştiği dizenin konumunu (mümkün olup olmadığından emin olmadan) alıp mouseup'un gerçekleştiği konumu elde ediyorum.

Herhangi bir bilgi, kaynak veya örnek karşılanacaktır.

+0

bakınız [kullanım JavaScript-ve-jquery-için-Al-kullanıcı tarafından seçilen metin] (http://mark.koli.ch/2009/09/use-javascript-and-jquery-to-get-user-selected-text.html) – Anujith

cevap

7

Düzenleme:

$('#foo').select(function(e) { 
    var start = e.target.selectionStart; 
    var end = e.target.selectionEnd; 
    console.log('Changed: ' + start + ' to ' + end); 
}); 

Demo:

$('#foo').select(function(e) { 
    console.log('Selection Changed'); 
}); 
:
http://jsfiddle.net/ZyDjV/1/


Sen Bunun için olayı seçmek kullanabilirsiniz

Deneme: http://jsfiddle.net/ZyDjV/

+0

Seçilen metni veya konumunu almanın bir yolu var mı? Döndüğü nesneyi inceliyorum ama hiçbir şey saklamıyor gibi görünüyor – jviotti

+0

Güncellenmiş yanıt ve demoya bakın. – techfoobar

+0

Harika ve çok temiz. Teşekkür ederiz – jviotti

2

bu bakınız: http://jsfiddle.net/rT5vR/

var getSelected = function(){ 
var t = ''; 
if(window.getSelection) { 
    t = window.getSelection(); 
} else if(document.getSelection) { 
    t = document.getSelection(); 
} else if(document.selection) { 
    t = document.selection.createRange().text; 
} 
return t; 
} 

$("#myElement").select(function(eventObject) { 
alert(getSelected().toString()); 
}); 

+0

Harika, Gönderdiğiniz web sayfasındaki kodun daha temiz bir uygulaması. Şimdi deneyeceğim. BTW, ne kadar çapraz tarayıcı bu? – jviotti