我遇到的问题是我的javascript插件似乎有冲突,但只是轻微。如果您查看我创建表单的fiddle,您会注意到在创建输入字段然后删除后,警报消息会在下一个元素(最初放置它们的下方)之间弹出。
澄清:如果用户尚未输入任何信息,则警报会弹出正确的位置(以红色文本浮动到输入字段的右侧)。但是,如果用户输入了他们的名字,然后删除他们的名字,则ajax警报(“此字段是必需的”)会弹出错误的位置,位于下面的字段中。在我包含这部分javascript(控制页面上的不同菜单)之后出现问题:
/* jQuery Content Panel Switcher JS */
var jcps = {};
jcps.fader = function(speed, target, panel) {
jcps.show(target, panel);
if (panel == null) {panel = ''};
$('.switcher' + panel).click(function() {
var _contentId = '#' + $(this).attr('id') + '-content';
var _content = $(_contentId).html();
if (speed == 0) {
$(target).html(_content);
}
else {
$(target).fadeToggle(speed, function(){$(this).html(_content);}).fadeToggle(speed);
}
});
};
jcps.slider = function(speed, target, panel) {
jcps.show(target, panel);
if (panel == null) {panel = ''};
$('.switcher' + panel).click(function() {
var _contentId = '#' + $(this).attr('id') + '-content';
var _content = $(_contentId).html();
if (speed == 0) {
$(target).html(_content);
}
else {
$(target).slideToggle(speed, function(){$(this).html(_content);}).slideToggle(speed);
}
});
};
jcps.show = function (target, panel) {
$('.show').each(function() {
if (panel == null) {
$(target).append($(this).html() + '<br/>');
}
else {
var trimPanel = panel.replace('.', '');
if ($(this).hasClass(trimPanel) == true){$(target).append($(this).html() + '<br/>');}
}
});
}
感谢您的帮助。
答案 0 :(得分:1)
我认为你可能对某些css冲突是正确的,但我能够通过修改label.error
元素上的css来接近我认为的预期效果。
label.error { color: red; position: relative; float: right: top: -30px; }