Я не совсем уверен, не использую ли я это в правильной области или что, но у меня есть сценарий, который в основном захватывает ссылку и вызывает увязку страницы, прежде чем перейти на связанную страницу. Однако, если ссылка представляет собой JavaScript onclick, скрипт не работает.jQuery: this.attr() не является функцией?
Вот мой код:
<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>
Как вы можете видеть, что я пытаюсь сделать проверку, чтобы увидеть, если ссылка имеет OnClick атрибут, а затем вызвать функцию OnClick если он существует. Как я могу это достичь?
Awesome. Работает как шарм. Я понимаю, что call() wo uld быть более безопасным в использовании, чем eval(), также, правильно? – chaoskreator