我有一个javascript代码将jQuery颜色框绑定到我的元素,但是无法弄清楚如何在回调中更改属性的值:
$(".iframe").colorbox({
iframe: true,
width: '80%',
height: '80%',
onLoad: function() {
console.log(width);
},
});
为什么我会获得ReferenceError: width is not defined
或如何访问此属性?
答案 0 :(得分:1)
您收到错误,因为width只是您传递给colorbox函数的对象的属性。它不是你可以参考的变量。
他们这样做:
var myWidth = '80%';
$(".iframe").colorbox ({
iframe:true,
width: myWidth,
height:'80%',
onLoad:function() {
console.log( myWidth );
},
});
或者
var props = {
iframe:true,
width: '80%',
height:'80%',
onLoad:function() {
console.log( props.width );
},
};
$(".iframe").colorbox(props);
答案 1 :(得分:0)
您正尝试访问全局范围内的width
变量。有点像尝试使用document
,window
或$
。您要访问的是colorbox对象的width
属性。如果插件将this
绑定到colorbox对象,那么您可以执行以下操作:
$(".iframe").colorbox({
...
onLoad: function() {
console.log(this.width);
}
});
但我假设您正在尝试访问要将颜色框绑定到的元素的宽度。如果是这种情况,您可以尝试这样的事情:
var $iframe = $(".iframe");
$iframe.colorbox({
...
onLoad: function() {
console.log($iframe.width());
}
});
答案 2 :(得分:0)
将此内容写入onLoad
函数:
onLoad: function() {
console.log($(this).width());
}
答案 3 :(得分:0)
通过使用:
,我能够实现我想要的目标width: function() {
}
这样我可以通过编程方式覆盖我试图做的宽度变量...