我在使用自动填充功能在我的页面上工作时遇到了很多麻烦.当我在搜索输入中输入2个字符("OW")时,我得到预加载器图像(见下文),但它永远不会消失,我从未得到自动完成弹出窗口.在Chrome中查看控制台显示:
Uncaught TypeError: Cannot use 'in' operator to search for '62' in [{"value":103,"label":"FLOWER"},{"value":105,"label":"YELLOW"}]
Run Code Online (Sandbox Code Playgroud)
以下是要返回的实际字符串(通过在成功块中添加警报(数据)来确认):
[{"kwrdID":103,"kwrdKeyWord":"FLOWER"},{"kwrdID":105,"kwrdKeyWord":"YELLOW"}]
Run Code Online (Sandbox Code Playgroud)
这是自动完成的主要代码
$("#searchInput").autocomplete({
source: function (request, response) {
$.ajax({
url: '@Url.Action("GetKeywords", "Home")',
dataType: "json",
data: {
SearchTerm: request.term
},
success: function (data) {
response($.map(data.keywords, function (item) {
return {
label: item.kwrdKeyWord,
value: item.kwrdID
}
}));
}
});
},
minLength: 2
});
Run Code Online (Sandbox Code Playgroud)
最后,这是预加载器(以防它是相关的).
$(document).ajaxStart(function () {
var position = $('#divParent').position();
position.left += (($('#divParent').width() / 2) - ($('#preloader').width() / 2));
position.top += (($('#divParent').height() / 2) - ($('#preloader').height() / …Run Code Online (Sandbox Code Playgroud) 我正在顶层菜单(ListItems)的开头插入菜单选项并使用
$('#newMenuItem').show('slide');
Run Code Online (Sandbox Code Playgroud)
成功.但是,我不喜欢它从左上角滑入的方式,所以我把它改成了
$('#newMenuItem').show('slide', { direction: 'right' });
Run Code Online (Sandbox Code Playgroud)
不幸的是,一旦我改变了它,我就不再得到新的物品了.实际上,没有比上面一行更低的代码被执行了.
有没有明显的理由说明这不起作用?我正在使用Visual Studio 2012附带的jquery-1.7.1.
我的控制器在此代码中的请求对象中获取上传的图像:
[HttpPost]
public string Upload()
{
string fileName = Request.Form["FileName"];
string description = Request.Form["Description"];
string image = Request.Form["Image"];
return fileName;
}
Run Code Online (Sandbox Code Playgroud)
image的值(至少在它的开头)看起来很像这样:
data:image/jpeg;base64,/9j/4AAQSkZJRgABAgEAYABgAAD/7gAOQWRvYmUAZAAAAAAB/...
Run Code Online (Sandbox Code Playgroud)
我尝试使用以下内容进行转换:
byte[] bImage = Convert.FromBase64String(image);
Run Code Online (Sandbox Code Playgroud)
但是,这会产生System.FormatException:"输入不是有效的Base-64字符串,因为它包含非基本64个字符,两个以上的填充字符或填充字符中的非法字符."
我觉得问题是至少字符串的开头不是base64,但对于我所知道的一切都不是.在解码之前我需要解析字符串吗?我错过了完全不同的东西吗?
我知道标题令人困惑,但问题很容易复制.
我的页面上有一些可以放置的元素(jQueryUI),hoverClass显示它们被拖动的时间.但是,我有一些隐藏的元素,有时在拖动过程中显示,然后不应该像他们应该的那样响应他们的hoverClass.
我在这里有一个显示这种情况的jsFiddle ,但是,如果你继续拖动div最终listItems开始显示他们的hoverClass.但是,在我的网站上这永远不会发生...... hoverClass永远不会出现在新显示的项目上.
HTML
<ul>
<li>Row1</li>
<li>Row2</li>
<li>Row3<span id="More">MORE...</span></li>
<li style="display: none;">Row4</li>
<li style="display: none;">Row5</li>
</ul>
<div id="DragMe">DragMe!</div>
Run Code Online (Sandbox Code Playgroud)
CSS
#DragMe {
position: absolute;
height: 100px;
width: 100px;
border: 1px solid black;
background-color: RGBA(255,255,255,0.5);
}
.DragOver {
background-color: #000000;
color: #FFFFFF;
}
#More {
margin-left: 10px;
}
Run Code Online (Sandbox Code Playgroud)
JavaScript的
$('#DragMe').draggable({
cursorAt: {top: 50, left: 50}
});
$('li').droppable({
hoverClass: 'DragOver'
});
$('#More').droppable({
over: function() {
$('li').show();
}
});
Run Code Online (Sandbox Code Playgroud)
有什么我可以改变,以使这工作正常吗?
jquery drag-and-drop jquery-ui jquery-ui-draggable jquery-ui-droppable