Ben, Shift tuşu durumunu izlemek için bir ihtiyaç var. Amacı, vardiya tuşu basılı tutulduğu zaman sürükle ve bırak işleminin düğüm (ler) ini KOPYALAya taşıyacaklarını ve onları taşımamayacağını kullanıcıya bildirmektir.Bağlama javascript tuşa basma olayları
ben Shift tuşunu basılı tutun ve sürükle ve bırak, kanca artık yok gerçekleştirmek eğer, ancak, aşağıdaki kod ile mükemmel bir çalışma var; Ekran artık tuşa basmayacak ve "basılı" durumda kalacaktır. Orada tahmin ediyorum
operasyonlar sorunun bir emir veya eksik parçası ya olduğunu. Javascript expers bildiriniz.
Teşekkürler!
<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>
bu neden çalışmadığını bir fikrin var mı: tarayıcı tarafından ateşlenen herhangi bir olay için, shift tuşuna basıldığında gerçek olacak shiftKey özelliği, erişebilir? şüpheli kod bölümleri başarısız mı? ex: keyUpHandler bir noktada çağrılıyor mu? 'size bir fikir verebilir ... –
Sürükle ve bırak bölüm nerede? Hangi kod ile ilgili * bu *? – Pointy
Shift'e basıldığında gerçekten kopyalamak istiyor musunuz? Genellikle, Ctrl basılı olduğunda sistem kopyalanır ve Shift basılı tutulduğunda hareket eder. Ve gerçekten de Olay arayüzünü 'e = e || window.event ', document.all' için kontrol etmeyin ve çalışan IE olduğunu varsayalım. –