У меня есть петля продуктов на мой взгляд, которая отлично работает.jQuery Каждая петля - отображает отдельный элемент
Затем я закодировал всплывающее окно мыши (JS). Всплывающее окно отображает цикл всех продуктов, а не отдельный продукт, который пользователь просматривает.
В любом случае, научите меня, как это решить?
Haml:
#product_view
- @products.each do |product|
.product_each
.product_image
= link_to (image_tag product.image.url(:tiny)), product, class: "each", popup: true
.pop-up
%poptitle= product.title
JS:
$(function() {
var moveLeft = -100;
var moveDown = -150;
$('a#link').hover(function(e) {
$('.pop-up').show()
.css('top', e.pageY + moveDown)
.css('left', e.pageX + moveLeft)
.appendTo('body');
}, function() {
$('.pop-up').hide();
});
$('a#link').mousemove(function(e) {
$(".pop-up").css('top', e.pageY + moveDown).css('left', e.pageX + moveLeft);
});
});
EDIT:
class
вместо id
(названный "каждый")
$(function() {
var moveLeft = -100;
var moveDown = -150;
$('a.each').hover(function(e) {
$('.pop-up').show()
.css('top', e.pageY + moveDown)
.css('left', e.pageX + moveLeft)
.appendTo('body');
}, function() {
$('.pop-up').hide();
});
$('a.each').mousemove(function(e) {
$(".pop-up").css('top', e.pageY + moveDown).css('left', e.pageX + moveLeft);
});
});
Почти работает! Работает отлично (информация обновляется в соответствии с каждым элементом). Одна вещь, однако, наведение мыши теперь работает только с * первым * временем, когда пользователь наводит на мыши элемент. Какой-нибудь вопрос, почему это происходит? – Liroy
О, да, ваш 'appendTo ('body')', перемещает всплывающее окно в DOM. Это проблема во второй раз, потому что тогда она больше не является братом элемента 'a'. Работает ли это без 'appendTo ('body')'? –
Гений! Большое спасибо за вашу помощь, мой друг! – Liroy