继承了未完成的项目,其中有多个页面具有相同的标题,masterPage.js和lightbox用于登录用户。由其他页面共享的标题有按钮“登录”或“注销”取决于用户的登录状态。如果点击它,它应该弹出lightbox,如果按钮上的文本是“登录”,只要注销,如果“注销”。我试着从masterPage.js控制lightbox(onClick事件),但似乎它超出了范围,并且无法识别lightbox元素ID。我可以通过页面和菜单链接lightbox,但不知道如何收听lightbox关闭,因此更新(或不更新)原始的“登录/退出”按钮与文本代表潜在的新状态。
我愿意接受“最好”的方式,而不是建立在半完成的尝试上,如果这样做有意义的话。
片段示例:尝试打开lightbox,但无法识别元素id lightbox 1
import wixWindow from 'wix-window';
$w.onReady(function () {
$w("loginButton").onClick(() => {
wixWindow.openLightbox("lightbox1")
})
});
同样,这也不起作用
$w("#lightbox1").show()
1条答案
按热度按时间p3rjfoxz1#
创建灯箱:您可以通过进入编辑器,单击左侧面板中的“添加”,选择“Lightbox”,然后单击“创建Lightbox”来创建Lightbox。给予它一个名字,例如。“Login Lightbox”.
将登录表单添加到Lightbox:一旦你创建了lightbox,你可以添加一个登录表单。您可以将登录表单从左侧面板拖放到lightbox上。
将登录按钮添加到页眉:将“登录/注销”按钮添加到母版页的标题中。您可以将onClick事件添加到将触发Lightbox的按钮。显示lightbox的代码如下:
这段代码检查按钮的标签。如果是“登录”,则打开Lightbox。如果是“注销”,则会注销用户并将标签更改回“登录”。
处理登录和注销:要处理登录和注销功能,可以向Lightbox中的登录表单添加onSubmit事件。处理登录的代码如下所示:
此代码处理登录表单提交。它获取email和password值,然后调用wixUsers.login()函数让用户登录。如果登录成功,则将“登录/注销”按钮的标签更改为“注销”并关闭灯箱。如果出现错误,它会将错误记录到控制台。
听灯箱关闭:要在Lightbox关闭时更新“登录/注销”按钮标签,您可以向Lightbox添加onClose事件。更新按钮标签的代码如下所示:
此代码侦听Lightbox关闭事件。如果用户已登录,它会将“登录/注销”按钮的标签更改为“注销”。如果用户未登录,则将标签更改回“登录”。