我有一个锚标记,单击时显示更多项目,显示这些项目后会出现另一个锚点并再次折叠这些项目。我有这个脚本在锚标记中搜索名为evitd的属性中的字符串,当它找到值触发警报时,字符串值为('expand_collapse'),然后显示更多项目并显示折叠锚点,但脚本不是第二次工作,即使锚具有属性evtid,其值为'expand_collapse'。任何建议都将受到赞赏
$(document).ready(function(){
$('.ms-cal-nav').each(function () {
var $this = $(this);
$this.on("click", function () {
if ($(this).attr('evtid').indexOf('expand_collapse') > -1) {
alert("hello");
}
});
});
});
<div class="ms-acal-ctrlitem" _expand="expand"><a href="javascript:void(0);" class="ms-cal-nav" evtid="expand_collapse"><img border="0" width="9" height="7">7 more items</a></div>
答案 0 :(得分:0)
jQuery documentation对如何做到这一点有很好的解释 - 他们称之为“委托事件”。您在一些静态祖先元素上注册您的侦听器(如body
,但最好是更接近您要监视的元素),然后在后代元素上侦听事件。这使您可以处理动态添加元素的事件。
$(document).ready(function(){
$('body').on('click','.ms-cal-nav', function () {
if ($(this).attr('evtid').indexOf('expand_collapse') > -1) {
alert("hello");
}
});
});
注意:我还删除了您的.each()
电话,因为这是不必要的。