【发布时间】:2013-04-29 17:31:55
【问题描述】:
我有这个代码:
var closeButton = $("<a class='close'/>")
.button({
icons: {
primary: "ui-icon-close"
},
text: false
})
.removeClass("ui-corner-all")
.addClass("ui-corner-right ui-combobox-toggle")
.click(function () {
if (invisibleElement != null)
jQuery(invisibleElement).val("");
//removing the close button with placaholder value
jQuery(visibleElement).val("Select");
jQuery(visibleElement).focus();
jQuery(visibleElement).blur();
var parentNode = $(this).parent();
parentNode.find(this).remove();
isCloseButton = false;
});
我通过这个有条件地添加这个按钮:
$(visibleElement).parent().find(".showAll").after(closeButton);
默认情况下不添加此项。这是根据一些输入添加的。
这些东西被添加到一个 td 中
<table border="0" width="100%" cellspacing='0' cellpadding='2'>
<tr>
<td style="vertical-align:middle; text-align:left; width: 45%;">
<input type="text" id="theVisibleElement" value=""/>
</td>
</tr>
但添加closeButton 后,我看不到showAll 元素。只有 inputBox(visibleElement) 和 closeButton 是可见的。虽然,在源代码中所有三个都存在,即可见元素(输入文本框)、showAll 元素和closeButton。奇怪的是td 足够大,但三个都没有出现。该怎么办?有什么建议吗?
这是 jsfiddle:http://jsfiddle.net/8U6xq/1/ 虽然有点乱。
【问题讨论】:
-
你能为此做一个 jsFiddle 吗?问题太模糊了,您没有显示所有相关代码。例如,td 放在哪里?
-
jsfiddle 会搞砸的。好,我会试试。但我已经给出了所有代码。
-
@jtheman jsfiddle 添加。
-
我可能错了,但您的测试
if (jQuery.trim($(invisibleElement).val()).length > 0 && jQuery.trim($(invisibleElement).val()) != "0")将始终为假,因为它只在创建元素时执行一次。 -
@Brewal 感谢您的评论。实际上,该代码从未在那里执行。关闭按钮是由下面的代码添加的,它是在
autocomplete的select事件中编写的。
标签: javascript jquery html html-table