मुझे शिफ्ट कुंजी की स्थिति की निगरानी करने की आवश्यकता है, चाहे वह ऊपर या नीचे हो। इसका उद्देश्य उपयोगकर्ता को सूचित करना है कि शिफ्ट कुंजी दबाए जाने पर, ड्रैग और ड्रॉप ऑपरेशन करने के लिए वे नोड को कॉपी करने जा रहे हैं, और उन्हें स्थानांतरित नहीं कर रहे हैं।बाध्यकारी जावास्क्रिप्ट कीप्रेस घटनाएं
मैं इसे नीचे दिए गए कोड के साथ पूरी तरह से काम कर रहा हूं, हालांकि, यदि मैं Shift कुंजी धारण करता हूं और ड्रैग और ड्रॉप करता हूं, तो हुक अब मौजूद नहीं है; स्क्रीन अब कुंजी प्रेस का जवाब नहीं देती है और "दबाए गए" राज्य में बनी हुई है।
मुझे लगता है कि या तो संचालन समस्या या एक लापता टुकड़ा का आदेश है। जावास्क्रिप्ट एक्सपर्स कृपया सलाह दें।
धन्यवाद!
<form id="form1" runat="server">
<div>
<table>
<tr>
<td valign="top"><ASP:Literal id="treeLeft" EnableViewState="false" runat="server" /></td>
</tr>
</table>
<asp:Label ID="lblCopyEnabled" runat="server" BackColor="Green" Text="Item will be Copied" ForeColor="White" Font-Bold="true" style="padding: 0px 10px 0px 10px; display: none" />
</div>
<script type="text/javascript">
document.onkeydown = KeyDownHandler;
document.onkeyup = KeyUpHandler;
var SHIFT = false;
function KeyDownHandler(e) {
var x = '';
if (document.all) {
var evnt = window.event;
x = evnt.keyCode;
}
else {
x = e.keyCode;
}
DetectKeys(x, true);
ShowReport();
}
function KeyUpHandler(e) {
var x = '';
if (document.all) {
var evnt = window.event;
x = evnt.keyCode;
}
else {
x = e.keyCode;
}
DetectKeys(x, false);
ShowReport();
}
function DetectKeys(KeyCode, IsKeyDown) {
if (KeyCode == '16') {
SHIFT = IsKeyDown;
}
else {
if (IsKeyDown)
CHAR_CODE = KeyCode;
else
CHAR_CODE = -1;
}
}
function ShowReport() {
var copyLabel = document.getElementById("<%= lblCopyEnabled.ClientID %>");
if (SHIFT) {
copyLabel.style.display = "inline";
ob_copyOnNodeDrop = true;
}
else {
copyLabel.style.display = "none";
ob_copyOnNodeDrop = false;
}
}
</script>
</form>
क्या आपको पता है क्यों यह काम नहीं कर रहा है? संदिग्ध कोड खंड जो असफल हो रहे हैं? पूर्व: क्या कुंजीपैंडर को किसी बिंदु पर बुलाया जा रहा है? 'आपको एक विचार दे सकता है ... –
ड्रैग और ड्रॉप भाग कहां है? * उस * के साथ क्या कोड शामिल है? – Pointy
क्या आप वाकई कॉपी करना चाहते हैं जब Shift दबाया जाता है? आमतौर पर, सिस्टम दबाता है जब Ctrl दबाया जाता है और Shift दबाए जाने पर चलता है। और आपको वास्तव में 'e = e || का उपयोग करके ईवेंट इंटरफ़ेस को सामान्य बनाना चाहिए window.event', 'document.all' की जांच न करें और मान लें कि यह आईई चल रहा है। –