Misc Callbacks Has
## jQuery callbacks.has() Method
The `callbacks.has()` method is a built-in jQuery function used to determine whether a specific callback function has been added to a callback list. It is part of the jQuery Callbacks object utility, which provides a flexible way to manage lists of callbacks.
---
## Definition and Usage
The `callbacks.has()` method checks if a callback list contains a specific callback function.
* If a callback function is passed as an argument, it returns `true` if that function is present in the list, and `false` otherwise.
* If no argument is passed, it returns `true` if the callback list has any callbacks attached, and `false` if the list is empty.
---
## Syntax
```javascript
callbacks.has( callback )
```
### Parameters
| Parameter | Type | Description |
| :--- | :--- | :--- |
| `callback` | `Function` | *Optional.* The callback function to search for in the list. |
### Return Value
* **Boolean**: Returns `true` if the specified callback is in the list (or if the list is not empty when no argument is provided), otherwise returns `false`.
---
## Code Examples
### Example 1: Checking for Specific Callbacks
The following example demonstrates how to use `callbacks.has()` to check if specific functions (`foo` and `bar`) have been added to the callback list.
```javascript
$(function () {
// A simple function to be added to the list
var foo = function( value1, value2 ) {
alert( "Received: " + value1 + "," + value2 );
};
// A second function that will not be added to the list
var bar = function( value1, value2 ) {
alert( "foobar" );
}
// Initialize the Callbacks list
var callbacks = $.Callbacks();
// Add the 'foo' function to the list
callbacks.add( foo );
// Check if 'foo' is in the list
alert( callbacks.has( foo ) ); // Returns: true
// Check if 'bar' is in the list
alert( callbacks.has( bar ) ); // Returns: false
});
```
### Example 2: Checking if the Callback List is Empty
When called without arguments, `callbacks.has()` checks whether the callback list contains any active callbacks.
```javascript
$(function () {
var foo = function() {
console.log("Hello World");
};
var callbacks = $.Callbacks();
// Check an empty list
console.log( callbacks.has() ); // Returns: false
// Add a callback
callbacks.add( foo );
// Check the list again
console.log( callbacks.has() ); // Returns: true
});
```
---
## Considerations
1. **Reference Matching**: The `callbacks.has()` method checks for function identity (reference equality). If you pass an anonymous function or a different reference that looks identical to an existing function, it will still return `false`.
2. **Disabled Lists**: If the callback list has been disabled using `callbacks.disable()`, `callbacks.has()` will always return `false`.
3. **Removed Callbacks**: If a callback is removed using `callbacks.remove()`, subsequent calls to `callbacks.has()` for that function will return `false`.
YouTip