【发布时间】:2020-06-27 05:14:30
【问题描述】:
我正在使用 a 访问不同的页面,当我从主页转到产品页面时,我的汉堡包按钮看起来像是被点击但没有打开。此外,当我刷新页面时,它再次起作用。因此,如果我刷新页面然后单击主页,它会将我重定向到主页,但汉堡按钮不再起作用?我已经使用 import $ from 'jquery' 包含了 jquery,所以我不知道它可能是什么,下面是我的文件。
Javascript链接点击:
import $ from 'jquery'
import jquery from 'jquery'
$(document).ready(function () {
//When hamburger button is clicked, open nav menu and pause carousel
$('.navbar-toggler, navbar-collapse').on('click', function () {
$('.mobilemenu, navbar-collapse').toggleClass('open')
})
//Shows the hamburger button when navbar is not open
$('#hiddenToggler').on('click', function () {
$('#hamburgerButton').show()
})
//Hides the hamburger button when navbar is open
$('#hamburgerButton').on('click', function () {
$('#hamburgerButton').hide()
})
})
链接到产品页面的示例
<Link to="/ProductPage/">
<div className="card" key={product.id}>
<div className="card-img-wrap">
<img
className=" card-img-top"
src={product.img}
alt="Card image cap"
/>
</div>
<div className="card-body">
<h6 className="card-title text-center">{product.name}</h6>
<p className="card-text text-center">
<small className="text-muted red">${product.price}</small>
</p>
</div>
</div>
</Link>
Css 导航栏如何打开
.mobilemenu {
position: fixed;
top: 0;
left: 0;
bottom: 0;
width: 70%;
margin: auto;
background-color: white;
transform: translateX(-100%);
transition: all ease 0.25s;
&.open {
transform: translateX(0%);
}
【问题讨论】:
-
$('.navbar-toggler, navbar-collapse')在第二个选择器中缺少.点。 -
@Pain 很好,我很欣赏它,但它仍然可以正常工作:(
-
另外,很多人很难从 jquery 切换到 React 思维模式。您通常不需要像这样直接操作 DOM。您可以改为跟踪切换的状态并适当调整渲染的输出。
-
@Pain 就像当我被重定向到另一个页面时, (document).ready 拒绝触发,所以当我点击按钮时,下面的代码都没有机会运行。
-
@tmdesign 这可能是我能做的最好的事情,你有什么好的链接可以偶然设置吗?
标签: javascript html css reactjs bootstrap-4