应用样式“;游标:指针”;所有具有onClick功能的React组件
Apply style "cursor: pointer" to all React components with onClick function
我想将样式cursor:pointer
应用于所有具有onClick函数的React元素。我知道我可以对每一个元素都这样做:
<a onClick={handleClick} style={{cursor:'pointer'}}>Click me</a>
或者这个:
<a onClick={handleClick} className="someClassWithCursorPointer">Click me</a>
但我更希望能够这样做,将样式应用于所有元素:
<style>
[onclick] {
cursor: pointer;
}
</style>
但这不起作用,因为在使用React的onClick
属性时,元素的渲染HTML中没有实际的onclick
属性。
Fiddle:https://jsfiddle.net/roj4p1gt/
我不确定是否有一种好的方法可以自动做到这一点,而不使用某种机制来拦截React元素的创建并修改它们(或者可能是源级别的转换)。例如,使用Babel,您可以使用Babel-plugin-react-transform,并使用onClick
道具将className
添加到所有元素中,方法如下(警告:伪代码):
export default function addClassNamesToOnClickElements() {
return function wrap(ReactClass) {
const originalRender = ReactClass.prototype.render;
ReactClass.prototype.render = function render() {
var element = originalRender.apply(this, arguments);
return addClickClassNamesToApplicableElements(element);
}
return ReactClass;
}
}
function addClassNamesToApplicableElements(elem) {
if (!elem || typeof elem === "string") return elem;
const children = elem.children;
const modifiedChildren = elem.props.children.map(addClassNamesToApplicableElements);
if (elem.props.onClick) {
const className = elem.props.className || "";
return {
...elem,
props: {
...elem.props,
className: (className + " hasOnClick").trim(),
children: modifiedChildren
}
};
} else {
return {
...elem,
props: {
...elem.props,
children: modifiedChildren
}
}
};
}
以下是第二部分工作的快速示例:https://bit.ly/1kSFcsg
您可以使用css轻松做到这一点:
a:hover {
cursor:pointer;
}
相关文章:
- 当我按下回车键时,如何触发onclick功能
- 打开网页并自动调用OnClick功能
- 具有onclick功能的自定义复选框在实际切换复选框之前执行功能
- 一个按钮中的两个onClick功能,并希望一个接一个地发生一个单击功能
- bootstrap超级菜单,如何更改为onclick功能和手机下拉项
- 对触发其onclick功能的按钮进行键绑定
- 为什么onClick功能不是'未识别
- 更改选择选项下拉列表与onclick功能按钮
- 如何使用onclick功能在同一页面上更改流URL和,图像URL和广播名称
- 引导 - 工具提示中带有 OnClick 功能的按钮
- (飞镖)我希望触发两个不同的onclick功能,具体取决于单击时是否选中了单选按钮.我该怎么做
- 应用样式“;游标:指针”;所有具有onClick功能的React组件
- 为什么浏览器会触发我的onclick功能
- onClick功能只触发一次
- 如何用onclick功能赞美音频
- OnClick功能在IE 10中不起作用,但在旧版本中可以
- 单击自定义复选框不会运行关联的onClick功能
- 动态添加图像的onclick功能无法正常工作
- 用Greasemonkey添加我自己的onclick功能
- 当onClick功能激活时,保留按钮可见