Здесь я вижу 3 проблемы, в первую очередь эту строку:
$var = $(this).clone(false).find("#clone").
Вам нужно ;
в конце вместо .
, чтобы вы не получили синтаксическую ошибку,а также clone
- это класс , а не #ID
, поэтому вам нужно .find('.clone')
.Тогда вот:
$('#div-to-replace').replaceWith($var);
То, что <div>
вы замените, полностью исчезнет, поэтому в следующий раз это не сработает, я думаю, что вы хотите вот что:
var product = $(this).find('.clone').clone();
$('#div-to-replace').empty().append(product);
Это не заменяет #div-to-replace
, но вместо этого помещает туда контент, в противном случае вы пропустите <div>
при наведении следующего продукта.Также обязательно используйте var
при создании локальных переменных, чтобы не создавать нежелательных побочных эффектов с глобальной переменной, которую вы получаете без нее:)