Я использую JQuery для динамического добавления элемента для отображения SVG, используя этот код:Указатель мыши при наведении/JQuery нажмите на событие SVG встроенный в объект элемент не работает
someEl = ('#someElement');
cancelButton = $(document.createElement('object')).attr({
'class': 'cancelButton',
'id':parent_id+'_xbtn',
'data': 'img/cancelBtn.svg',
'type': 'image/svg+xml'
});
someEl.after(cancelButton);
function cancel() {
alert('asd');
}
cancelButton.click(cancel);
И стиль его парить с вручную используя этот CSS:
.cancelButton:hover {
cursor: hand;
cursor: pointer;
}
Однако я обнаружил, что во-первых, когда я наводил элемент, указатель мыши не изменяется. Однако эффекты наведения, которые изменяют сам элемент (например, изменение bg-color), работают нормально. Во-вторых, обработчик jQuery, который я прикрепляю, не срабатывает.
Это ограничение какого-либо элемента <object>
или того, как работает SVG? Любые комментарии или предложения оценены.
добавление курсора: указатель после «курсора: рука» указывает курсор на указатель. Просто удалите 'cursor: pointer', чтобы исправить эту проблему –
, и ваш' $ (этот) 'вызов выходит за рамки любой функции, если только это не является результатом фрагмента кода, это означает, что $ (this) относится к глобальному объекту, Я думаю, что это не так, как вы хотите –
Это результат этого фрагмента кода, извините. Это все внутри функции, и она прикрепляется после соответствующего элемента. 'cursor: pointer' - это имя, используемое современными браузерами для руки, но старый IE использует' hand', поэтому оба они необходимы. Если я удалю один, он не работает в FF, Chrome и т. Д., И если я удалю другой, он не будет работать в IE. – dougalg