# Events.offBlockHoverChange
Unlisten for Block Hover changes of doc , this method is called asynchronously.

## Availability description

Permission requirements | View Available Description | Platform is available | scene
---|---|---|---
Readable | All views | - PC<br>- Mobile | Presentation mode

## Input

| **Name** | **Data type**           | **Is required** | **Description**             |
| -------- | ----------------------- | --------------- | --------------------------- |
| handler  | BlockHoverChangeHandler | Yes             | Block Hover Change Listener |

### BlockHoverChangeHandler

```js
type BlockHoverChangeHandler = (event: BlockHoverChangeEvent) => void;
```

### BlockHoverChangeEvent

Block Hover Change Event
| **Name**  | **Data type**                                                                 | **Is required** | **Description**                          |
| --------- | ----------------------------------------------------------------------------- | --------------- | ---------------------------------------- |
| prevBlock | [BlockSnapshot](https://open.feishu.cn/document/uAjLw4CM/uYjL24iN/docs-add-on/05-api-doc/basic-data-reference---base/BlockSnapshot) | No              | Block information hovering before change |
| currBlock | [BlockSnapshot](https://open.feishu.cn/document/uAjLw4CM/uYjL24iN/docs-add-on/05-api-doc/basic-data-reference---base/BlockSnapshot) | No              | Block information hovering after change  |

## Output

No

## Example code

### Calling example

```js
const blockHoverChangeHandler = (event: BlockHoverChangeEvent) => {
        console.log('debug', event);
    };
useEffect(() => {
    docMiniApp.Events.onBlockHoverChange(blockHoverChangeHandler);
    return () => {
        docMiniApp.Events.offBlockHoverChange(blockHoverChangeHandler);
    };
});
```

### Return example

No