如何在调用函数时更改动态添加元素的属性,而不是通过将事件绑定到它来更改属性。
我的代码的作用: 我试图通过jquery在浏览器后退按钮上加载所有以前的内容。 我需要使用新的href属性更新所有loadmore按钮(动态创建),具体取决于浏览器中的url和侧栏表单上的checked选项。
问题: 问题是我无法更新动态添加元素的href属性。
我尝试了什么
botSpace
是固定类,动态添加的元素有sidebar_loadMore
类。
动态添加元素
<a id="loadMore" class="sidebar_loadMore" onclick="more_leftajaxsearchcategory(0,0,this);" href="#apiscroll=1">View More</a>
我试图将href更新为url作为值。
jQuery('.botSpace').find('.sidebar_loadMore').attr('href', scroll);
jQuery("body").on("ready",'.sidebar_loadMore',function(){
jQuery(this).attr('href', scroll);
})
此外,我还尝试绑定mouseenter
事件。这有效但在其他一些情况下会导致问题。
并尝试绑定一些自定义事件但未能实现它。
实时网址:您可以在此处查看代码Bestofthebrunch
答案 0 :(得分:1)
我添加了一个条件,通过简单地调用函数leftajaxsearchcategory(value1, value2, back=true)
来检查是否按下了浏览器后退按钮。这是在DOM中添加更多元素的函数。并且在被调用函数端检查了一个条件,如果url有一个哈希值并且返回为真,那么我根据我的需要更新href就像这样...
if(window.location.hash && back){
var scroll = getScroll();
var scrollURL = getScrollURL(scroll);
var url = '<a id="loadMore" class="sidebar_loadMore" onclick="more_leftajaxsearchcategory(0,0,this);" href="'+scrollURL+'">View More</a>';
}
else if(!back){
var url = '<a id="loadMore" class="sidebar_loadMore" onclick="more_leftajaxsearchcategory(0,0,this);" href="#apiscroll=1">View More</a>';
}
最后问题解决了。 感谢所有人建议我解决问题的可能方法。