No estoy muy seguro de si no estoy usando esto en el ámbito correcto o qué, pero tengo un script que básicamente captura un enlace hace clic y hace que la página se desvanezca antes de ir a la página vinculada. Sin embargo, si el enlace es JavaScript onclick, la secuencia de comandos falla.jQuery: this.attr() ¿no es una función?
Aquí está mi código:
<script type="text/javascript">
pageObj = {
init: function(){
$("body").fadeTo("slow", 1);
},
redirectPage: function(redirect){
window.location = redirect;
},
linkLoad: function(location){
$("body").fadeOut(1000, this.redirectPage(location));
}
};
$(document).ready(function() {
pageObj.init();
$("a").click(function(e){
e.preventDefault();
if (this.attr('onclick') !== undefined) {
eval(this.attr('onclick').val());
} else {
var location = this.href;
pageObj.linkLoad(location);
}
});
});
</script>
Como se puede ver, yo estoy tratando de hacer una comprobación para ver si el enlace tiene la onclick atributo, y luego llamar a la función onclick si existiera. ¿Cómo puedo conseguir esto?
Impresionante. Funciona como un encanto. Entiendo que llame() wo ¿Debería ser más seguro de usar que eval(), también, correcto? – chaoskreator