2013-05-13 79 views
0

我的一些代码使用jQuery来创建元素<a>与点击行为给出一个函数:jQuery的动态点击事件

$(alternatives).each(function (idx, elt) { 
    var element = $('<span class="label label-success">'); 
    var link = $('<a class="prop' + idx + '" title="' + elt + '">' + elt + '</a>'); 
    link.click(switchLabel); 
    element.append(link); 
    list.append(element); 
}); 

这里的想法是捉对<a class="prop1-0" title="myTitle">my link</a> click事件来改变一个文本<span id="corr1-0">my old text</span>。两个元素之间的链接由类后缀f.i构成。 1-0

我有几双<a>/<span>,我检查了每一个ID。

一些环节的工作,但有的没有:在控制台没有错误,没有与萤火虫追踪...

绑定功能是:

function switchLabel(e) { 
    $('#corr'+ e.target.className.substr(4)).text($(e.target).attr('title')); 
} 

你有一些提示,以帮助我跟踪这种不需要的行为? 我可以在实施中犯错吗?

问候

+0

首先你使用变量'index'和'idx',是吗? – Hoffmann 2013-05-13 15:32:52

+0

是的,这是一个错字... – enguerran 2013-05-14 07:26:02

回答

4

你的变量不匹配,您使用的指标,而不是IDX等,并有更简单的方法来创建元素和事件处理?

$.each(alternatives, function (idx, elt) { 
    var element = $('<span />', {'class' : 'label label-success', 
           id  : 'corr'+idx 
           } 
     ), 
     link = $('<a />' {id : 'prop' + idx, 
          title : elt, 
          text : elt 
          } 
     ); 
    link.on('click', function() { 
     $('#' + this.id.replace('prop','corr')).text(this.title); 
    }); 
    list.append(element.append(link)); 
}); 
+0

非常感谢分享。我不知道这个语法,并且快速查看后,它看起来更稳定。为什么?我的代码是错误的还是框架问题? – enguerran 2013-05-14 07:32:52

+0

此代码在引导popover元素中创建链接。这个由自举代码创建并显示/隐藏的元素无法正确处理,因为在第一次调用时,启动了click事件,而在其他调用中(在隐藏/显示循环后),它不是...... – enguerran 2013-05-14 07:46:23