vue可点击行和href冲突
Vue clickable row and href conflict
对不起。一个颠倒的问题。我有这个table。这是可通过 iWasClicked 功能点击的,但我还有最后一个带有可点击图像 (href) 的 td。我希望最后一个 td 只能通过图像(href)点击。现在,它同时触发了两者。来自 tr.
的 href link 和 iWasClicked
<tr
class="bg-gray-100 text-dark text-center cursor-pointer hover:bg-gray-300"
v-for="currentView in getOrganizationsDashboard().projects"
:key="currentView.id"
@click="iWasClicked(currentView.projectName)"
>
<td class="px-4 py-3 border-b-2 border-dark">
<!-- {{ showProjectSuccessRunPercentage(currentView)}} -->
<img
class="w-10 inline-block align-middle"
:src="showProjectSuccessRunPercentage(currentView)"
alt="Organization Icon"
/>
</td>
<td class="px-4 py-3 border-b-2 border-dark">
{{ currentView["projectName"] }}
</td>
<td class="px-4 py-3 border-b-2 border-dark">
<a
class=" "
:href="
'https://xxx.us/org/' + currentView['projectName']
"
target="_blank"
><img
class="inline-block w-10"
alt=""
src="../assets/img/myLogo.svg"
/></a>
</td>
</tr>
您必须阻止点击事件冒泡并触发对 tr
的点击,您可以这样做:
<a @click="$event.stopPropagation()"</a>
<a
class=" "
:href="'https://xxx.us/org/' + currentView['projectName']"
target="_blank"
@click.stop
>
<img class="inline-block w-10"
alt=""
src="../assets/img/myLogo.svg"/>
</a>
最好为 @click
使用提供的 Vue 事件修饰符,即 .stop
。就像 回答的那样,这也会停止点击事件的传播。
<tr @click.stop="iWasClicked(currentView.projectName)">
对不起。一个颠倒的问题。我有这个table。这是可通过 iWasClicked 功能点击的,但我还有最后一个带有可点击图像 (href) 的 td。我希望最后一个 td 只能通过图像(href)点击。现在,它同时触发了两者。来自 tr.
的 href link 和 iWasClicked<tr
class="bg-gray-100 text-dark text-center cursor-pointer hover:bg-gray-300"
v-for="currentView in getOrganizationsDashboard().projects"
:key="currentView.id"
@click="iWasClicked(currentView.projectName)"
>
<td class="px-4 py-3 border-b-2 border-dark">
<!-- {{ showProjectSuccessRunPercentage(currentView)}} -->
<img
class="w-10 inline-block align-middle"
:src="showProjectSuccessRunPercentage(currentView)"
alt="Organization Icon"
/>
</td>
<td class="px-4 py-3 border-b-2 border-dark">
{{ currentView["projectName"] }}
</td>
<td class="px-4 py-3 border-b-2 border-dark">
<a
class=" "
:href="
'https://xxx.us/org/' + currentView['projectName']
"
target="_blank"
><img
class="inline-block w-10"
alt=""
src="../assets/img/myLogo.svg"
/></a>
</td>
</tr>
您必须阻止点击事件冒泡并触发对 tr
的点击,您可以这样做:
<a @click="$event.stopPropagation()"</a>
<a
class=" "
:href="'https://xxx.us/org/' + currentView['projectName']"
target="_blank"
@click.stop
>
<img class="inline-block w-10"
alt=""
src="../assets/img/myLogo.svg"/>
</a>
最好为 @click
使用提供的 Vue 事件修饰符,即 .stop
。就像
<tr @click.stop="iWasClicked(currentView.projectName)">