我有一组在 for 循环中动态生成的锚点标签,如下所示:
<div id = "solTitle"> <a href = "#" id = "' + tagId + '" onClick = "openSolution();"> ' + solTitle + '</a></div> <br>';
一旦执行此代码,其中一个案例的HTML输出将如下所示:
<div id = "solTitle"> <a href = "#" id = "solution0" onClick = "openSolution();">Solution0 </a></div> <br>
<div id = "solTitle"> <a href = "#" id = "solution1" onClick = "openSolution();">Solution1 </a></div> <br>
现在我希望在单击上述链接时显示不同的文本。 openSolution() 看起来像这样:
function openSolution() {
alert('here');
$('#solTitle a').click(function(evt) {
evt.preventDefault();
alert('here in');
var divId = 'summary' + $(this).attr('id');
document.getElementById(divId).className = '';
});
}
当我执行代码并点击其中任意一个链接时,流程不会进入jquery点击处理程序。我通过上面使用的警报进行了检查。它只显示警报 -“here”,而不是警报 - “here in”。
第二次点击链接时,一切都能够完美地工作,并且divId的值是正确的。
.on('click', function() {
而不是.click(function() {
。 - Enriqe