我正在尝试编写一些JQuery,以便每当用户点击链接(即a
标记)时,就会发出警报,并且该链接实际上并未跳转到其他位置。
$(document).ready(function() {
$(document.body).on('click',"a",function(event){
event.preventDefault();
alert("Hello!");
});
});
此文件中的链接实际上不在HTML代码中,而是由其他JavaScript插入。警报有效,但不会阻止默认设置。如何解决这个问题?
答案 0 :(得分:2)
只是为了结束这个问题,因为在聊天中发生了故障排除,因为它来回需要太多......
每个人都是对的,代码完美无缺。 OP的问题是另一个代码是添加了一个eventListener。这无法跟踪,因此只有源文件挖掘才能显示。如果整个应用程序使用jQuery,那么jQuery知道它附加的所有事件,所以类似于提出的故障排除将显示事件,然后帮助挖掘添加/删除的行:$._data( $("a")[0], "events" );
如果像OP一样,你最终得到的代码是你不知道使用addEventListener添加vanilla(普通)JS事件,则无法列出元素的eventListeners,因此调试并不那么容易。一个小的原型hack可以帮助你,将这段代码添加为页面执行的非常第一个js代码(只需将其放在标签中):
var sourceAEL = Element.prototype.addEventListener;
Element.prototype.addEventListener = function(type, listener){
console.log('Type: '+type);
debug;//Will stop the code from executing allowing debugging in browser console (and thus know what calls it)
sourceAEL.apply(this,[type,listener]);
};