当我将鼠标悬停在另一个元素上时,我试图为一个元素引发一个ms.Seek(0, SeekOrigin.Begin);
事件。我试图根据数据属性找到元素:
var client = new HttpClient();
var response = await client.GetAsync(new Uri($"{url}{imageId}")); // call to WebApi; url and imageId defined earlier
if (response.IsSuccessStatusCode)
{
using (var contentStream = await response.Content.ReadAsInputStreamAsync())
{
var stream = contentStream.AsStreamForRead();
var file = await imagesFolder.CreateFileAsync(imageFileName, CreationCollisionOption.ReplaceExisting);
using (MemoryStream ms = new MemoryStream())
{
await stream.CopyToAsync(ms);
using (var fileStream = await file.OpenStreamForWriteAsync())
{
ms.Seek(0, SeekOrigin.Begin);
await ms.CopyToAsync(fileStream);
ms.Seek(0, SeekOrigin.Begin); // rewind for next use below
}
string md5Hash = await Utils.GetMD5Hash(ms);
await AddImageToDataBase(file, md5Hash);
}
}
}
我的事件触发,调试我可以看到具有mouseenter
类的元素列表,其中一个具有匹配的数据属性,但el的长度始终为0.
带事件的元素:
$("#modal").on("mouseenter", ".jq_pin", function(e) {
var attr = $(this).data("abbr");
var els = $(".jq_mapPoint");
var el = els.find("[data-abbr='" + attr + "']");
el.trigger(e.type);
});
元素我试图瞄准:
jq_mapPoint
答案 0 :(得分:4)
您需要.filter()
而不是.find()
将匹配元素集合减少到与选择器匹配的元素或通过函数测试。
var el = els.filter("[data-abbr='" + attr + "']");
而不是
var el = els.find("[data-abbr='" + attr + "']");
答案 1 :(得分:-1)
可能需要所有选择器*
:
theels.find("*[data-abbr='" + attr + "']");