安装Wordpress 3.1后,jquery插件selectbox 我再也不用百分之百地工作了
我在wordpress后端使用此插件替换<select></select>
我可以在自定义html代码上应用css,但在wordpress 3.1中<select>
不要100%被替换,<option>
例如,替换的代码中缺少
<select>
<option (some attributes...)>text</option>
<option (some attributes...)>text</option>
</select>
应替换为(实际上不是替换,原始
<select>
将被隐藏)
<div class="jquery-selectbox">
<div class="jquery-selectbox-moreButton"></div>
<div class="jquery-selectbox-list jquery-custom-selectboxes-replaced-list">
<span>text</span> /* option 1 */
<span>text</span> /* option 2 */
</div>
<span class="jquery-selectbox-currentItem">text of selected option</span>
</div>
而实际结果是
<div class="jquery-selectbox">
<div class="jquery-selectbox-moreButton"></div>
<div class="jquery-selectbox-list jquery-custom-selectboxes-replaced-list">
/* nothing here */
</div>
<span class="jquery-selectbox-currentItem">nothing here</span>
</div>
奇怪的是还有很多
<select>
一定要100%更换。
我尝试回滚到wordpress 3.0并重新安装了两次wordpress 3.1,一旦回滚到3.0,脚本就可以完美运行,只要安装了3.1,问题就会出现。
我的测试站点中没有wp插件,jquery库首先被完全加载,我的其他脚本都运行良好。我搜了很多,运气也不好,但我发现了问题发生的地方,不知道为什么会这样。
return this.each(function() { // for each <select>
var _this = jQuery(this);
... // I added an alert here, alert(_this.attr(\'id\')), to print <select> id, and all <select> id are catched
jQuery(\'option\', _this).each(function(k,v){
... // I added a same alert at first line this function, only replaced 100% <select> id are catched
});
...
});
这是插件代码做的替换,对于所有没有得到100%替换的插件代码
<select>
, 我上面评论的这句话没有得到实现,看起来像是被跳过了。
有什么想法吗?
<小时>[Update]我删除了所有其他脚本和插件,下面是我脚本中剩下的唯一代码
jQuery(document).ready(function() {
jQuery(\'#myadmin select\').each(function() {
jQuery(this).find(\'option\').addClass(\'huh?\');
});
});
这些选项中的所有选项均未100%替换
<select>
你没听懂这门课吗
<小时>[Update 2]我将更新1中的脚本更改为
jQuery(document).ready(function() {
jQuery(\'select option\').addClass(\'huh?\');
});
你猜怎么着?全部的
<option>
有这门课吗。这与jQuery类似,但为什么是WP 3.1呢?
<小时>
[Resolved]
WP 3.1将jQuery版本升级到1.4.4,我注销了它,并在我的页面上带回了jQuery 1.4.2,现在一切都好了,所有
<select>
100%替换
最后一个问题是如何将此问题标记为已解决?