Alpine js在绑定方法中获取原始元素

Alpine js get original element in bind method

假设我想在 Alpine.bind 方法中获取原始元素,我该怎么做? 所以我可以检索 $el.targetName、$el.style、$el.onclick 等属性 例如,如果我有:

<script>
    document.addEventListener('alpine:init', () => {
        Alpine.bind('SomeButton', () => ({
            type: 'button',
 
            '@click'() {
                // How would  i get the target element with ll its DOM properties
                //So I can retrive properties like  $el.targetName,$el.style, $el.onclick etc
            },
 

        }))
    })
</script>

我试过$elthis(只有returns一个js代理)等等

在组件定义中,您必须在每个对象前加上 this. 前缀才能访问组件的活动实例。所以解决方案就是使用 this.$el 访问按钮 HTML 元素:

<button x-data x-bind="SomeButton">Click here</button>

<script>
document.addEventListener('alpine:init', () => {
  Alpine.bind('SomeButton', () => ({
      type: 'button',

      '@click'() {
          console.log(this.$el.textContent)
      },
  }))
})
</script>

这会在单击时将 Click here 放入控制台。

注意:如果按钮没有 Alpine.js 父元素,请不要忘记将 x-data 添加到按钮。