event.target 弄乱按钮区域
event.target messing up button area
我正在使用以下代码触发事件。
'click .btn-zoom':function(e){
e.preventDefault;
var zoomFont = parseInt($('pre code').css('font-size')) + 2;
if(zoomFont <= 25) {
$(e.target).parent('code').css('font-size', zoomFont);
// $('pre code').css('font-size', zoomFont); //Alternative code
}
},
<button class="btn-zoom"><i class="plus icon"></button>
是按钮标记。
有趣的是,当我使用上面的代码$(e.target)....
时,按钮只有在我点击按钮内部的边界时才会激活排除 图标 本身。简单来说,如果我在图标的边界内点击,它不会激活。
如果我使用上面提到的替代代码,它会在我点击按钮的任何地方触发。
有办法解决这个问题吗?我需要使用 e.target
,因为我计划在模板中使用多个 code
。
如果您点击该图标,您的 e.target
是:
<i class="plus icon">
如果您点击按钮,您的 e.target
是:
<button class="btn-zoom">
因为你使用的是$(e.target).parent
,所以只有当你点击按钮时它才有效,因为我假设按钮的父级是pre code
,而图标的父级实际上是<button class="btn-zoom">
。
您的替代代码起作用的原因是您直接访问 pre code
而无需依赖 parent
行为。
修复它的一个好方法可能是修改 btn-zoom
的 css 以包含图标(使用 background
属性 之类的东西)。这样,无论您是否单击图标,您仍然在单击实际按钮。
我正在使用以下代码触发事件。
'click .btn-zoom':function(e){
e.preventDefault;
var zoomFont = parseInt($('pre code').css('font-size')) + 2;
if(zoomFont <= 25) {
$(e.target).parent('code').css('font-size', zoomFont);
// $('pre code').css('font-size', zoomFont); //Alternative code
}
},
<button class="btn-zoom"><i class="plus icon"></button>
是按钮标记。
有趣的是,当我使用上面的代码$(e.target)....
时,按钮只有在我点击按钮内部的边界时才会激活排除 图标 本身。简单来说,如果我在图标的边界内点击,它不会激活。
如果我使用上面提到的替代代码,它会在我点击按钮的任何地方触发。
有办法解决这个问题吗?我需要使用 e.target
,因为我计划在模板中使用多个 code
。
如果您点击该图标,您的 e.target
是:
<i class="plus icon">
如果您点击按钮,您的 e.target
是:
<button class="btn-zoom">
因为你使用的是$(e.target).parent
,所以只有当你点击按钮时它才有效,因为我假设按钮的父级是pre code
,而图标的父级实际上是<button class="btn-zoom">
。
您的替代代码起作用的原因是您直接访问 pre code
而无需依赖 parent
行为。
修复它的一个好方法可能是修改 btn-zoom
的 css 以包含图标(使用 background
属性 之类的东西)。这样,无论您是否单击图标,您仍然在单击实际按钮。