Hi Dani 
With static handlers, you can only write one for each element, while dynamic handlers can be used as much as you want, for example, you want the button to redirect you to your profile if you’re logged in, or prompt you to login if you’re not, this behavior can be achieved with both handlers.
Also, dynamic handlers can completely change the core of the event handler, for example.
if (user.loggedIn) {
$w('#loginButton').onClick((event) => {
wixLocation.to('/profile')
})
} else {
$w('#loginButton').onClick((event) => {
wixWindow.openLightbox('Sign Up')
})
}
Notice how the behavior of the event handler changed dynamically based on some factors.
Now regarding the selectors ($w and $Item), the $w selector is a global selector, while the $Item is not, and typically used in repeaters with items to perform actions on some of the repeated item, and not all of them, for example, in a friends list, a repeater is used to display each member data, and a call-to-action button called “Follow”, and you only want to show this button for members who want to be followed.
If you use this code, it’ll enable all the buttons regardless of users decisions:
if (itemData.wantsToBeFollowed) {
$w('#followBtn').enable();
}
But if you use this code, it’ll only enable the Follow button for those who wants to be followed.
if (itemData.wantsToBeFollowed) {
$Item('#followBtn').enable();
}
Of course assuming that all of this code is inside a repeater’s onItemReady() function.
Hope that gives you better understanding.
Ahmad