Elm 一个div中的自定义事件和onMouseEnter

Elm 一个div中的自定义事件和onMouseEnter,elm,Elm,我试图将两个事件附加到一个div中,但遇到了一些困难。当附加其中一个事件而不是两个事件时,代码将编译。我将解释什么正在起作用,以及当我尝试附加另一个事件时它是如何中断的。它崩溃的原因很直观,但我不知道如何解决这个问题 现在我有: dragHereOverlay : { item : String, color : String } -> Html Msg dragHereOverlay item = App.map (\d -> GetPositionDragHere d i

我试图将两个事件附加到一个div中,但遇到了一些困难。当附加其中一个事件而不是两个事件时,代码将编译。我将解释什么正在起作用,以及当我尝试附加另一个事件时它是如何中断的。它崩溃的原因很直观,但我不知道如何解决这个问题

现在我有:

dragHereOverlay : { item : String, color : String } -> Html Msg
dragHereOverlay item =
    App.map (\d -> GetPositionDragHere d item) <|
        div
            [ on "mouseenter" decodeRectangle
            , attribute "class" "drag-here"
            , sharedStyles
            ]
            []

decodeRectangle : Decode.Decoder Rectangle
decodeRectangle =
    let
        rectangle =
            DOM.target
                :> DOM.boundingClientRect
    in
        rectangle
第一个元素具有以下类型:

Attribute { height : Float, left : Float, top : Float, width : Float }
但第二点是:

Attribute Msg
提示:所有元素都应该是相同类型的值,以便 在列表中迭代,不会遇到意外值

谢谢你的帮助


好的,错误消息告诉您问题所在。你需要改变

on "mouseenter" decodeRectangle

其中需要定义tagger并具有此类型签名

tagger: Rectangle -> Msg

你可以发布编译错误完成!现在我必须写更多的东西才能发布这个:D
on "mouseenter" decodeRectangle
on "mouseenter" (Json.Decode.map tagger decodeRectangle)
tagger: Rectangle -> Msg