javascript - 如何在仅调用函数时更改动态添加元素的属性

标签 javascript jquery

如何在仅调用函数时更改动态添加元素的属性,而不是通过将事件绑定(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/

相关文章:

javascript - 如何在 3d 中取消投影矢量

javascript - 我如何获取 html <tr> 对象内部的值

javascript - 如何使用 jQuery 处理 "defile"文本?

javascript - Flex Ajax Bridge,或任何其他使用 ColdFusion 的推送方法?

jquery - 数据表行重新排序仅移动一行

javascript - `setInterval` 中的时间问题

javascript - JQUERY.计数.JS : On Scroll Count Numbers NOT OnLoad

javascript - 悬停显示多张图片

Javascript:根据多个键确定并返回对象数组中的重复对象

javascript - jquery 事件绑定(bind)的奇怪行为