我尝试在选定的DOM元素上触发click事件,但我的代码无效。
您可以在JSFiddle上看到我的尝试。
<ul class="list-group">
<a href="#" class="list-group-item" data-key="32">LG GOLA 8M</a>
<a href="#" class="list-group-item" data-key="33">LG 5-6M</a>
<a href="#" class="list-group-item" data-key="34">LP 5-6M</a>
</ul>
$(document).ready(function() {
// I get the string tr from URL parameters
var tr = "fix_LG%20GOLA%208M";
if (tr !== null) {
var terminrahmen = $('.list-group-item').filter(function() {
return $(this).text() === decodeURI(tr).substring(4);
});
// Trigger click event on .list-group-item
terminrahmen.click();
}
// The function to be executed
$('.list-group-item').click(function() {
alert($(this).text());
});
});
当加载DOM时,我从URL参数中收集一些数据,并将数据与DOM元素进行比较。这部分工作正常。
之后我得到一个元素,我想触发一个click事件。 click事件应该“执行”指定的函数。
有人为我提供了一个好的解决方案吗?提前谢谢。
答案 0 :(得分:2)
问题是您在将事件处理程序附加到它之前触发了click事件。所以你只需要在触发点击之前移动点击处理程序,一切都会按预期工作:
$(document).ready(function() {
// The function to be executed
$('.list-group-item').click(function() {
alert($(this).text());
});
// I get the string tr from URL parameters
var tr = "fix_LG%20GOLA%208M";
if (tr !== null) {
var terminrahmen = $('.list-group-item').filter(function() {
return $(this).text() === decodeURI(tr).substring(4);
});
// Trigger click event on .list-group-item
terminrahmen.click();
}
});
答案 1 :(得分:2)
将click事件置于就绪事件的顶部。点击事件需要在注册事件 后触发 。它没有发生在
之前$(document).ready(function() {
// The function to be executed
$('.list-group-item').click(function() {
alert($(this).text());
});
// I get the string tr from URL parameters
var tr = "fix_LG%20GOLA%208M";
if (tr !== null) {
var terminrahmen = $('.list-group-item').filter(function() {
return $(this).text() === decodeURI(tr).substring(4);
});
// Trigger click event on .list-group-item
terminrahmen.click();
}
});