如何在仅调用函数时更改动态添加元素的属性,而不是通过将事件绑定(bind)到它来更改属性。
我的代码的作用: 我正在尝试通过 jquery 在浏览器后退按钮上加载所有以前的内容。 我需要使用新的 href 属性更新所有 loadmore 按钮(动态创建),具体取决于浏览器中存在的 url 和侧边栏表单上的选中选项。
问题: 问题是我无法更新动态添加元素的 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);
})
我还尝试绑定(bind) mouseenter
事件。这可行,但在其他一些情况下会导致问题。
并尝试绑定(bind)一些自定义事件但未能实现。
Live URL:您可以在此处查看代码 Bestofthebrunch
最佳答案
我添加了一个条件来检查浏览器的后退按钮是否被按下,只需调用函数 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>';
}
问题终于解决了。 感谢所有人向我建议解决我的问题的可能方法。
关于javascript - 如何在仅调用函数时更改动态添加元素的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31852473/