在开发傲游新浪微博插件中,使用jquery遇到一些问题,原因和解决方法如下。
1、thickbox的参数问题
在thickbox的例子中,以inline方式调用,形式如#TB_inline?height=300&width=300&inlineId=myOnPageContent。
但是发现这样调用不能设定弹出层的高度,调试到tb_parseQuery方法时,发现如上的整个串被整个传递进来,而parse方法是根据;或者&来分隔参数的,造成无法获得第一个参数。
巧解:加一个无用的参数代替height作为第一个参数。例如#TB_inline?a=a&height=300&width=300&inlineId=myOnPageContent。
2、在使用interface时slideDown的飘移
使用interface插件时,如果元素居中,使用slideDown会产生飘移,出现后会突然出现在最左边,然后随着点击或者hover又出现在正中。
巧解:在外层再套一个div,对这个div使用slideDown方法。
3、thickbox的漏空问题
thickbox显示一个div时,只显示里面的元素,没有这个div的背景。
巧解:在这个div里再用一个div包含所有的元素,设置这个div的css属性即可。
4、relative元素在slide时的问题
relative元素是相对定位,如果它定位的元素也同时需要slide,这个元素的位置就会飘忽不定。
巧解:弃用相对定位,用js来计算此元素的margin代替left和top等属性。