锚点标记不触发点击事件

时间:2012-06-15 04:33:49

标签: jquery eventtrigger

这是DEMO
HTML CODE为

<div id="me"></div>

<a id="ok" href="">OK</a>

jquery代码:

var tr = '';
for (var i = 0; i < 100; i++) {
    tr += '<tr><td>a' + i + '</td></tr>';
}
var table = '<table>';
table += tr;
table += '</table>';
$('#me').append(table);

$('td').each(function(index, value) {
    if ($(this).text() == 'a50') {
        $(this).addClass('yellow').attr('id', 'search');
    }
});    
$('#ok').attr('href','#search');
$('#ok').trigger('click');

要做:在每个td的表格中都有数据。我正在尝试搜索数据。如果找到搜索数据,则将td添加为属性类为黄色,id为搜索。 我有一个锚标记。锚标记是模拟:当它被点击时,窗口将滚动到该位置。我还添加了内部链接到锚标记。

现在,单击Anchor标记以使页面导航到href位置

问题页面未导航到内部链接。锚标签没有触发点击有什么问题吗?但是当我用鼠标

单击锚标签时导航

3 个答案:

答案 0 :(得分:1)

将最后一行替换为

window.location.href='#search​​';

适合我:)

答案 1 :(得分:1)

点击和导航之间存在差异。因此,当它在锚标记中是href时,它更像是导航 试试这个fiddle

var tr = '';
for (var i = 0; i < 100; i++) {
    tr += '<tr><td>a' + i + '</td></tr>';
}
var table = '<table>';
table += tr;
table += '</table>';
$('#me').append(table);

$('td').each(function(index, value) {
    if ($(this).text() == 'a35') {
        $(this).addClass('yellow').attr('id', 'search');
    }
});

location.href='#search';

答案 2 :(得分:1)

我认为你应该使用window.location.href。请尝试以下方法:

// define this click event for #ok

$('#ok').on('click', function() {
    window.location.href = this.href
});

$('td').each(function(index, value) {
    if ($(this).text() == 'a50') {
        $(this).addClass('yellow').attr('id', 'search');
    }
});
$('#ok').attr('href', '#search');
$('#ok').click(); // trigger the click

<强> DEMO