如何在调用函数

时间:2015-08-06 09:50:20

标签: javascript jquery

如何在调用函数时更改动态添加元素的属性,而不是通过将事件绑定到它来更改属性。

我的代码的作用: 我试图通过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

1 个答案:

答案 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>';  
}

最后问题解决了。 感谢所有人建议我解决问题的可能方法。