मैं अंत में यह मिल गया के लिए 1) टाइपिंग, 2) खींचें और ड्रॉप, 3) Ctrl-V का काम करने के लिए की तरह कुछ कर सकते हैं और 4) एक माउस के संदर्भ मेनू से पेस्ट
$(document).on("paste drop", '.taValue', function (e) {
myHandler.call(e.target, e);
});
पाठ क्षेत्र पर KeyUp घटना पहले से ही काम किया: क्लिक करें, लेकिन मैं पेस्ट देते हैं और दस्तावेज़ के लिए संचालकों ड्रॉप (जहां 'taValue' textareas मैं नजर रखने के लिए कोशिश कर रहा हूँ के वर्ग है) किया था। अगली समस्या यह थी कि टेक्स्टरेरा में पाठ वास्तव में बदलने से पहले पेस्ट और ड्रॉप इवेंट निकाल दिए जाते हैं। मेरे मामले में मैं नए पाठ की तुलना मूल पाठ से करना चाहता था। मैं एक setTimeout का सहारा लिया:
function myHandler(e) {
if (e && (e.type === "drop" || e.type === "paste")) {
var me = this;
setTimeout(function() { myHandler.call(me) }, 200);
}... [more code to do the comparison]
मैं इस तरह बातों के लिए समय समाप्ति का उपयोग कर से नफरत है, लेकिन यह काम करता है (जब मैं एक 100ms अंतराल की कोशिश की, उसने ऐसा नहीं किया)।
$("#item_name").bind("input change", function() {});
शायद बदल आवश्यक नहीं है:
यदि आप पेस्ट करने के लिए Ctrl + V दबाते हैं तो यह विधि काम करती है। लेकिन अगर आप माउस पर राइट क्लिक करते हैं और पेस्ट का चयन करते हैं तो यह काम नहीं करता है। – JohnnyLinTW
मुझे लगता है कि अगर $ ("# txtcomplaint") में परिवर्तन होता है। बाइंड ('पेस्ट', शून्य, फ़ंक्शन (ई) ... और यह Ctrl + V और माउस पेस्ट के लिए ठीक काम करता है। – JohnnyLinTW