我有一个元素在页面加载时通过jquery添加一个属性。该属性称为jcarouselindex。我需要在文档加载时获取此属性的值。
我有选择器,如果没有动态添加,可以这样做:
id = jQuery('#gallery-carousel li.selected').attr("jcarouselindex");
但是由于它是动态添加的,因此id的值是未定义的。我想我需要使用.live()有没有人知道如何获得这个属性的值呢?
答案 0 :(得分:2)
上面的代码应该可行。 .live()用于不同的目的。我想你可能会在动态添加之前尝试访问attr。尝试使用setTimeout调用此函数,这将确保所有现有代码都被执行。
setTimeout(function(){
id = jQuery('#gallery-carousel li.selected').attr("jcarouselindex");
}, 0);
我假设您的代码已经在$(function(){})中;块。
答案 1 :(得分:0)
Live应该用于将事件处理程序绑定到绑定时页面上不存在的元素。
我认为您需要查看页面上的执行时间。您的选择器包含li上的“选定”类,因此我假设事件必须触发添加所选类。添加jcarouselindex属性值后会发生此事件吗?如果是这样,那么你应该在选择事件发生时捕获这个值。
不幸的是,您没有给我们提供太多细节,所以更多信息可以帮助我们为您提供更多帮助。
答案 2 :(得分:0)
live
不是为了这个,而是为了事件处理程序。您必须在设置属性后运行该代码,因此请尝试使用:
$.ready(function(){
id = jQuery('#gallery-carousel li.selected').attr("jcarouselindex");
});
答案 3 :(得分:0)
正在使用jcarousel插件吗?
如果是这样,您可以在初始化轮播时使用回调:
$('#gallery-carousel').jcarousel({
initCallback: function () {
var id = $('#gallery-carousel li.selected').attr("jcarouselindex");
// do something with id
}
});
通过这种方式,您可以确保在执行代码之前已经初始化了旋转木马。
请参阅:http://sorgalla.com/projects/jcarousel/了解更多详情。