您好我最近决定将我的ajax调用从html元素移动到我的外部javaScript文件中。它通过在客户端点击页面时执行的函数来工作。该函数确定在页面上单击了哪个元素,并在元素是链接('a')时继续获取href属性。这非常有效,除非链接顶部有另一个元素。例如:
<a id="home" href="./"><div id="homeicon"></div></a>
所以我想知道如何让js检测它所点击的所有元素(整个元素堆栈),然后获得堆栈中最高的链接元素('a')。但是这里是没有click eventListener的当前函数。
function linkHandler(e) {
var e = window.e || e;
// Makes sure the element clicked is a link
if(e.target.tagName !== 'A' || useAjax == false){
return false; // Exits if element isn't a link
}
// Makes sure to not use ajax when the middle mouse button and right is clicked
if(e.button == 1 || e.button == 2){
return false; // Exit the click wasn't left click
}
// Prevent regular page request
e.preventDefault(); // Disables the default behaviour request behaviour
// AJAX CALL
}
另一种方法是将eventListener设置为显然有一个循环的每个该死的链接元素,然后运行一个函数,在每次调用ajax后刷新eventListeners。
我只是要说我不会使用任何类型的框架,但jquery答案可能对有类似问题的人有所帮助。
老实说,我很遗憾,并希望得到一些关于这个主题的帮助,谢谢。