0
for(var i=0; i < 2; i++){
     someNode.onclick = function(num){
         return function(){
           alert(num);   
       }
    }(i)
}

这是我的javascript,

<a href="http://example.com/"></a>

这是我在 html 中的节点

由于关闭问题,我需要在函数中嵌入一个函数,那么当我单击链接时,如何防止链接将我重定向到其他页面?因为它已经返回了一个函数。我不可能添加一个return false;

4

2 回答 2

3

您可以添加return false;

for(var i=0; i < 2; i++){
     someNode.onclick = function(num){
         return function(){
           alert(num);
           return false;   
       }
    }(i);
}

或者你可以使用e.preventDefault

for(var i=0; i < 2; i++){
     someNode.onclick = function(num){
         return function(e){
           e.preventDefault();
           alert(num);   
       }
    }(i);
}
于 2013-09-13T03:54:00.697 回答
0

试试这个方法:(灵感来自这个。)

演示

// Your Existing code
for(var i=1; i <= 2; i++){
     document.getElementById("link"+ i).onclick = function(num){
         return function(){
           alert(num);   
       }
    }(i);
}


// Update the onclick event handlers to return false at end.
for(var i=1; i <= 2; i++) {
    var node = document.getElementById("link"+ i);    
    node.onclick = (function (fn) {
      return function () { 
          fn.apply(fn, arguments);
          return false;
      };
    })(node.onclick);
}
于 2013-09-13T03:55:30.127 回答