javascript - 如何使用 ID 或 Class 在一个 amp HTML 文档的不同位置调用一个 Javascript 函数?
问题描述
//调用添加到购物车对这个id执行操作
<amp-script script="addToCart" target="amp-script" data-ampdevmode>
<button id="bottomSheetView" on="tap:AMP.setState({productId:{id : {{id}}}})" class="btn btn-block btn-sm btn-view">add</button>
</amp-script>
//我想在这个 amp 脚本容器中附加结果或在这个容器中添加任何 div 但脚本将保持相同的 addToCart
<amp-script layout="container" script="addToCart" data-ampdevmode>
</amp-script>
<script id="addToCart" type="text/plain" target="amp-script">
let bottomSheetView = document.getElementById("bottomSheetView");
if(bottomSheetView)
{
bottomSheetView.addEventListener("click",createBottomSheet);
}
async function createBottomSheet() {enter code here
let productId = JSON.parse(await AMP.getState('productId.id'));
AMP.setState({bottomSheet:false});
console.log(productId);
}
</script>
<amp-state id="productId">
<script type="application/json">
{
"id" : ""
}
</script>
</amp-state>
解决方案
推荐阅读
- javascript - Chrome webRequest中的URL重定向被阻止的URL
- amazon-web-services - 由于服务角色,无法创建管道
- quickblox - 无法解析模块 nativescript-xmpp-client
- java - JNI 接口中应该抛出通用异常还是专用异常?
- vba - 如何在 Excel 中将数据从一个表分配到另一个表?
- css - 可调整大小的 div - 允许用户抓取 div 的任何边缘以调整大小并同时调整所有 div 的大小
- r - 通过 R 中的值有条件地更改 DT 字体颜色
- angular - Rxjs过滤分割字符串可观察到分隔符
- php - 将数据库数据与 html 表进行比较,并在 Laravel 8 中使用 AJAX 刷新更改
- react-native - Mobx 商店不会触发 react-native 项目的重新渲染