यहां एक विधि है जिसके साथ मैं आया हूं।
यह <a>
टैग के बजाय <span>
का उपयोग करता है, लेकिन कुछ बोनस के साथ एक नियमित लिंक की तरह व्यवहार करता है। जब आप टेक्स्ट को रोल करते हैं, तो 500 मिलीसेकेंड टाइमआउट होता है जो कर्सर को टेक्स्ट चयन कर्सर में बदल देगा। टेक्स्ट पर क्लिक करने और खींचने से क्लिक एक्शन ट्रिगर नहीं होता है, हालांकि टेक्स्ट पर डबल क्लिक (पूरे शब्दों का चयन करने के लिए) अभी भी क्लिक इवेंट ट्रिगर करता है। यह सुधार किया जा सकता है, लेकिन यह अच्छी तरह से काम करता है और उत्पादन में इस्तेमाल किया जा सकता है।
टाइमआउट निष्पादित होने पर यह और भी बेहतर होगा, यह बटन के ऊपरी दाएं भाग में एक छोटा क्लिपबोर्ड आइकन भी दिखाता है जिसे वे टेक्स्ट को अपने क्लिपबोर्ड पर कॉपी करने के लिए क्लिक कर सकते हैं। जब आप बटन के .mouseout()
पर यह क्लिपबोर्ड आइकन छुपाएंगे।
इसके अतिरिक्त, जब माउस बटन छोड़ देता है तो टेक्स्ट चयन को साफ़ करने के लिए एक और विशेषता हो सकती है। (Clear Text Selection with JavaScript)
एचटीएमएल
<span data-href="javascript:alert('This is the click action.');" class="link selectable">
<span>[email protected]</span>
</span>
सीएसएस
.link {
font: 16px/0 Tahoma, sans-serif;
padding: 15px 30px;
border: 1px solid #0079be;
border-radius: 4px;
color: #0079be;
cursor: pointer;
}
.link:hover {
color: #fff;
background: #0079be;
}
.link.selectable > span {
display: inline-block;
}
.link.selectable.selecting > span {
cursor: text;
}
जावास्क्रिप्ट
$('.link.selectable > span').hover(
function() {
var selectableTimeout = setTimeout(
function(elem) {
$(elem).parent().addClass('selecting');
},
500, this
);
$(this).data('selectableTimeout', selectableTimeout);
},
function() {
clearTimeout($(this).data('selectableTimeout'));
$(this).parent().removeClass('selecting');
}
);
$('.link.selectable').mousedown(
function(e) {
$(this).data('mouseX', e.pageX);
$(this).data('mouseY', e.pageY);
}
);
$('.link.selectable').mouseup(
function(e) {
var mouseX = $(this).data('mouseX');
var mouseY = $(this).data('mouseY');
if (mouseX && mouseY && mouseX === e.pageX && mouseY === e.pageY) {
window.location.href = $(this).attr('data-href');
}
}
);
https://jsfiddle.net/gavin310/6efdyq4h/
मुझे लगता है कि आपको पहले यह काम करने की ज़रूरत है कि आप इस काम की कल्पना कैसे करते हैं। अगर आप उस पर क्लिक करते हैं तो आपको लिंक पर कैसे पहुंचाया जाएगा? यदि आप उस पर क्लिक नहीं कर सकते हैं तो आप टेक्स्ट का चयन कैसे करेंगे? –