better way to do this? ('already declared in upper scope')

To get rid off the yellow notice, you could try to change the second → “event” into —> “event2” or something like that. Perhaps this is your solution.
(although i never have seen such an change in a change event)

And the second: Use a simple “for-loop”…

for (var i = 0; i < number of dropdowns here; i++) {
    $w("#dropdown"+i).disable()
}