Если я правильно понял вопрос (и комментарии диалога) правильно, вы хотите
- создать несколько элементов всплывающих подсказок
- имеют какие-то
toolTipMsg()
функции, чтобы прочитать содержание показанного подсказкя
текущая установка выглядит как долго туда и обратно:
- внутри реагировать функции визуализации, использовать JQuery для создания нескольких элементов всплывающих подсказок, и передать каждый атрибут имя-данные HTML
- внутри Реагировать componentDidMount, используйте JQuery для извлечения подсказки из DOM и прикрепить слушателей
функцию
- слушатель пожаров, который читает снова из DOM для извлечения атрибута атрибута имени HTML-подсказки.
Смешивание jQuery и реагирование на чтение DOM (или - хуже - манипулирование DOM), как правило, не очень хорошая идея.
ОБНОВЛЕНИЕ: так что есть 2 возможных пути, чтобы решить:
с. Решение только для реактивов (NO jQuery, NO Bootstrap) Внутри реакции рекомендуется избегать использования ссылок, если они не нужны. И похоже, что они вам не нужны.
Вы можете привязать переменную к toolTipMsg()
и использовать ее. И настройте слушателя MouseOver на родительском всплывающей подсказки.
код Реагировать стиль будет выглядеть более или менее, как:
// tooltip element creation inside render function
// of individual tooltip parent element
return
<div className="alwaysVisibleToolTipParent"
onMouseOver={this.toolTipMsg}>
<p>someOtherContent</p>
<span className="my-awesome-tooltip">{this.props.tooltipname}</span>
</div>
});
// no need for componentDidMount: listener covered in initial render
// the function is much simpler now
tooltipMsg: function(){
console.log(this.tooltipname);
}
Вы должны свернуть свою собственную всплывающую подсказку с укладкой для этого (так, к сожалению, никакой пользы от JQuery)
б. Альтернативно: используйте только Bootstrap и jQuery (НЕТ реагировать) Всплывающая подсказка Bootstrap запускает собственные события, которые вы можете прослушать. (documentation here).
В вашем коде, вы бы где-нибудь:
$('#myToolTipParent').on('shown.bs.tooltip', function() {
// 'this' is now the element (parent of the tooltip)
tooltipMsg(this);
})
И ваша tooltipMsg()
функция будет гласить:
function tooltipMsg(element) {
// the text of the tooltip == the title attribute of the parent element of the tooltip
console.log(element.getAttribute("title"));
}
Не вопрос ReactJS. Каково значение 'element' в функции' tooltipMsg'? –
как насчет создания динамической коррекции. Но в любом случае я не думаю, что создание дочернего с jquery - это «реакция», вы должны вставлять элементы. https://facebook.github.io/react/docs/multiple-components.html#dynamic-children – svenhornberg
@Bruno Grieder, http://getbootstrap.com/javascript/#tooltips, пожалуйста, перейдите по ссылке в ссылке. Если мы используем функцию для названия, она будет вызываться с этой ссылкой. но в моем случае он приходит как undef –