سؤال

ال وثائق مسج تقول أن المكتبة لديها دعم مدمج للأحداث التالية:طمس، تركيز، تحميل، تغيير حجم، تمرير، إلغاء تحميل، نقر، dblclick، mousedown، mouseup، mousemove، mouseover، mouseout، mouseenter، mouseleave، تغيير، تحديد، إرسال، keydown، ضغطة مفتاح، keyup، والخطأ.

أحتاج إلى التعامل مع أحداث القص والنسخ واللصق.ما هي أفضل طريقة للقيام بذلك؟FWIW، أنا فقط بحاجة للقلق بشأن WebKit (من حسن حظي!).

تحديث:أنا أعمل على "عنصر واجهة مستخدم" في بيئة تشبه لوحة المعلومات.إنه يستخدم WebKit، لذلك من المهم حقًا (لأغراضي) ما إذا كانت هذه الأحداث مدعومة هناك، وهو ما يبدو كذلك.

هل كانت مفيدة؟

المحلول

ويمكنك إضافة وإزالة أحداث من أي نوع عن طريق استخدام .on() و <لأ href = " http://api.jquery.com/off "يختلط =" noreferrer "> طرق off()

وجرب هذا، على سبيل المثال

jQuery(document).on('paste', function(e){ alert('pasting!') });

ومسج هو في الواقع غير مبال تماما إلى ما إذا كان نوع الحدث الذي تعيين معتمد من قبل المتصفح، بحيث يمكنك تعيين أنواع الأحداث التعسفية لعناصر (والأشياء العامة) مثل:

jQuery('p').on('foobar2000', function(e){ alert(e.type); });

في حالة أنواع حدث مخصص، يجب عليك .trigger() لهم "يدويا" في التعليمات البرمجية، مثل هذا :

jQuery('p').trigger('foobar2000');

وأنيق إيه؟

وعلاوة على ذلك، للعمل مع الأحداث الملكية / DOM المخصصة بطريقة متوافقة عبر متصفح، قد تحتاج إلى استخدام / كتابة "الحدث مسج المساعد" ... مثال على ذلك يمكن أن ينظر إليها في <ديل> <أ href ل = "http://plugins.jquery.com/files/jquery.event.wheel.js.txt" يختلط = "noreferrer"> jquery.event.wheel.js براندون هارون <أ href ل = "https://github.com/brandonaaron/jquery-mousewheel" يختلط = "noreferrer"> عجلة الماوس المساعد

نصائح أخرى

هي

ومختلف الأحداث الحافظة المتاحة في جافا سكريبت، على الرغم من الدعم متقطعا. QuicksMode.org لديه شبكة و <لأ href = "HTTP: // www.quirksmode.org/dom/events/tests/cutcopypaste.html "يختلط =" noreferrer "> صفحة اختبار . لا يتعرض لها الأحداث من خلال مسج، لذلك عليك إما أن تمديد المكتبة أو استخدام أحداث جافا سكريبت الأم.

وموزيلا يدعم "المدخلات" الحدث الذي أواجه صعوبة في العثور على وثائق مفيدة ل. على أقل تقدير، وأنا أعلم انها تطلق على معجون.

   this.addEventListener('input',
    function(){//stuff here},
    false
   );

مثل jQuery 1.7 يمكنك استخدامه ربط(...) و فك الارتباط (...) طرق إرفاق وإزالة المعالجات على التوالي.

فيما يلي أمثلة لمحاذاة سؤالك:

$('#someElementId').bind('paste', function(){return false;});

- سيمنع هذا أي محاولات للصق من الحافظة إلى نص العنصر.يمكنك استخدام أيضا يقطع, ينسخ وغيرها كأنواع الأحداث (انظر الروابط أدناه)

$('#someElementId').bind('copy', function(){return alert('Hey fella! Do not forget about copyrights!');});

لذلك، في حالات أخرى، عندما تريد إزالة تلك المعالجات، يمكنك استخدامها فك الارتباط () طريقة:

$('#someElementId').unbind('copy');

هنا بعض الروابط المفيدة:

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top