Hice este violín corto: http://jsfiddle.net/NZnN2/. ¿Por qué no aparece la alerta cuando hago clic en el botón?Función de Javascript no se llama en "violín"
Respuesta
Debido a que su código JavaScript está en un controlador onload
, lo que significa display_message
no es global, y por lo tanto no es accesible por el HTML.
Desde que ha seleccionado onLoad
, el JavaScript se inyecta en la página de la siguiente manera:
window.addEvent('load', function() {
function display_message(){
alert("woohoo!");
}
});
Como se puede ver, display_message
sólo es accesible dentro de esa función anónima. Para que el ejemplo funcione, cambie onLoad
a no wrap (head)
o no wrap (body)
(en el lado izquierdo de la página).
Ejemplo de trabajo: http://jsfiddle.net/NZnN2/8/
En otras palabras: es un problema de alcance –
... y por lo tanto, debe cambiar el menú desplegable en el lateral. – SLaks
en lugar de
function display_message() {
alert('woohoo!');
}
hacer
display_message = function() {
alert('woohoo!');
}
¿qué navegador usas? (en Google Chrome, esto está funcionando) – Keil
@BenniKa: No realmente. Hará que la variable sea global y, por lo tanto, accesible para el manejador en línea. –
@BenniKa: No del todo. Sin 'var' frente a' display_message = ', se convertirá en una variable global. –
- 1. La función no se llama
- 2. La función setTimeout de Javascript no llama a
- 3. Javascript obtener el elemento DOM una función se llama desde
- 4. accesorioButtonTappedForRowWithIndexPath: no se llama.
- 5. WebMethod no se llama
- 6. localStorage eventListener no se llama
- 7. textFieldShouldReturn no se llama
- 8. fbDidLogin no se llama
- 9. didReceiveRemoteNotification no se llama
- 10. mouseMoved no se llama
- 11. onServiceConnected() no se llama
- 12. onPostExecute no se llama
- 13. La función del conjunto flexible no se llama
- 14. ViewForAnnotation no se llama
- 15. Drupal hook_views_post_execute no se llama
- 16. didReceiveAuthenticationChallenge no se llama
- 17. forwardInvocation no se llama?
- 18. onPageScrolled() no se llama
- 19. View.onMeasure() no se llama
- 20. función count llama
- 21. C++ no se llama en la subclase
- 22. función listo jQuery se llama dos veces
- 23. onDrawFrame no se llama en Android
- 24. initwithstyle: reuseIdentifier: no se llama
- 25. UITableView cellforrowatindexpath no se llama
- 26. Intento implícito no se llama
- 27. NuGet - install.ps1 no se llama
- 28. UIViewController -viewDidLoad no se llama
- 29. MPMoviePlayerPlaybackDidFinishNotification se llama cuando no
- 30. dylib destructor no se llama
Como @Rocket señaló, debe establecer 'sin envoltura' en lugar de 'onload' en la barra izquierda . – Imp
Estoy perdido. ¿Por qué esta pregunta es rechazada tan agresivamente? Podría mejorarse un poco explicando un poco más acerca de cuál es el problema exactamente, pero ¿tiene un violín que sea fácil de usar y vea el problema ...? – Beska
Sin código en la pregunta, sin explicación de lo que está sucediendo/no está sucediendo, título terrible. – Interrobang