jquery 添加 id 并使用它的脚本不起作用
jquery script adding id and using it doesn't work
我正在尝试使用我的键盘点击使用 id 的按钮。
对于某些按钮,我必须设置 ID,这确实有效。但是一旦我尝试将键盘用于我设置 id 的按钮,它就不起作用了。
我没有收到任何错误,并且由于将 id 添加到元素有效,我有点困惑为什么我不能在代码中稍后使用新的 set id。
//setting id for first button (works)
$( "a:contains('Im Verband freigeben')" ).attr('id', 'freigabe-verband');
//setting id for second button (works aswell)
$( "a:contains('Vorheriger Einsatz')" ).attr('id', 'vorheriger-einsatz');
$( document ).keydown(function(e) {
if (e.keyCode == 39) {
//works, id is available, not set by me
$("#alert_next").click();
} else if (e.keyCode == 38){
// doesn't work, but id is set
$("#freigabe-verband").click();
} else if (e.keyCode == 40){
// doesn't work, but id is set
$("#vorheriger-einsatz").click();
}
return e.returnValue;
});
有人知道为什么吗?
https://i.imgur.com/uy6oGFJ.png
试试这个例子:
$(document).find("#vorheriger-einsatz").click();
您是在事后添加到 DOM,因此除非您再次搜索 dom,否则将找不到它
要单击 dom 元素,请使用:-
$('#freigabe-verband')[0].click();
或
$('#freigabe-verband').get(0).click();
例子
$("a").attr('id', 'test');
$(document).keydown(function(e) {
$('#test')[0].click();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="http://whosebug.com">link</a>
没有意义。
我复制了您的代码并创建了一个 plunkr,效果很好。
http://plnkr.co/edit/Eb5QF6mB97Js41NFbr8J?p=preview
// Code goes here
$(function() {
//setting id for first button (works)
$( "a:contains('Im Verband freigeben')" ).attr('id', 'freigabe-verband');
//setting id for second button (works aswell)
$( "a:contains('Vorheriger Einsatz')" ).attr('id', 'vorheriger-einsatz');
$( document ).keydown(function(e) {
if (e.keyCode == 39) {
//works, id is available, not set by me
$("#alert_next").click();
} else if (e.keyCode == 38){
// arrow up
$("#freigabe-verband").click();
} else if (e.keyCode == 40){
// arrow down
$("#vorheriger-einsatz").click();
}
return e.returnValue;
});
}
);
<!DOCTYPE html>
<html>
<head>
<script data-require="jquery@2.1.4" data-semver="2.1.4" src="https://code.jquery.com/jquery-2.1.4.js"></script>
<link rel="stylesheet" href="style.css" />
<script src="script.js"></script>
</head>
<body>
<h1>Hello Plunker!</h1>
<a href="#" onclick="alert('a');">Im Verband freigeben</a><br>
<a href="#" onclick="alert('b');">Vorheriger Einsatz</a>
</body>
</html>
我正在尝试使用我的键盘点击使用 id 的按钮。
对于某些按钮,我必须设置 ID,这确实有效。但是一旦我尝试将键盘用于我设置 id 的按钮,它就不起作用了。
我没有收到任何错误,并且由于将 id 添加到元素有效,我有点困惑为什么我不能在代码中稍后使用新的 set id。
//setting id for first button (works)
$( "a:contains('Im Verband freigeben')" ).attr('id', 'freigabe-verband');
//setting id for second button (works aswell)
$( "a:contains('Vorheriger Einsatz')" ).attr('id', 'vorheriger-einsatz');
$( document ).keydown(function(e) {
if (e.keyCode == 39) {
//works, id is available, not set by me
$("#alert_next").click();
} else if (e.keyCode == 38){
// doesn't work, but id is set
$("#freigabe-verband").click();
} else if (e.keyCode == 40){
// doesn't work, but id is set
$("#vorheriger-einsatz").click();
}
return e.returnValue;
});
有人知道为什么吗? https://i.imgur.com/uy6oGFJ.png
试试这个例子:
$(document).find("#vorheriger-einsatz").click();
您是在事后添加到 DOM,因此除非您再次搜索 dom,否则将找不到它
要单击 dom 元素,请使用:-
$('#freigabe-verband')[0].click();
或
$('#freigabe-verband').get(0).click();
例子
$("a").attr('id', 'test');
$(document).keydown(function(e) {
$('#test')[0].click();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="http://whosebug.com">link</a>
没有意义。 我复制了您的代码并创建了一个 plunkr,效果很好。 http://plnkr.co/edit/Eb5QF6mB97Js41NFbr8J?p=preview
// Code goes here
$(function() {
//setting id for first button (works)
$( "a:contains('Im Verband freigeben')" ).attr('id', 'freigabe-verband');
//setting id for second button (works aswell)
$( "a:contains('Vorheriger Einsatz')" ).attr('id', 'vorheriger-einsatz');
$( document ).keydown(function(e) {
if (e.keyCode == 39) {
//works, id is available, not set by me
$("#alert_next").click();
} else if (e.keyCode == 38){
// arrow up
$("#freigabe-verband").click();
} else if (e.keyCode == 40){
// arrow down
$("#vorheriger-einsatz").click();
}
return e.returnValue;
});
}
);
<!DOCTYPE html>
<html>
<head>
<script data-require="jquery@2.1.4" data-semver="2.1.4" src="https://code.jquery.com/jquery-2.1.4.js"></script>
<link rel="stylesheet" href="style.css" />
<script src="script.js"></script>
</head>
<body>
<h1>Hello Plunker!</h1>
<a href="#" onclick="alert('a');">Im Verband freigeben</a><br>
<a href="#" onclick="alert('b');">Vorheriger Einsatz</a>
</body>
</html>