JAVASCRIPT点击更改

时间:2010-06-06 23:18:42

标签: javascript javascript-events onclick

我喜欢一些帮助改变这个javascript onclick事件只是加载页面上的数据加载... 最好不要在装载标签上使用车身......

所以很明显,我会在脚本术语中预设var,而不是点击事件上的消息。

希望有意义

<p><a id="keywordlink" href="?term=wombats">Get keywords for wombats</a></p>
<script type="text/javascript" src="keywords.js"></script>
<script type="text/javascript">
  var x = document.getElementById('keywordlink');
  if(x){
    x.onclick = function(){
      var term = this.href.split('=')[1];
      this.innerHTML += ' (loading...)';
      KEYWORDS.get(term,seed);
      return false;
    }
  }
  function seed(o){
    var div = document.createElement('div');
    var head = document.createElement('h2');
    head.innerHTML = 'Keywords for '+o.term;
    div.appendChild(head);
    var p = document.createElement('p');
    p.innerHTML = o.toplist;
    div.appendChild(p);
    var head = document.createElement('h3');
    head.innerHTML = 'Details:';
    div.appendChild(head);
    var list = document.createElement('ol');
    for(var i=0,j=o.keywords.length;i<j;i++){
      var li = document.createElement('li');
      li.innerHTML = o.keywords[i].term + '('+o.keywords[i].amount+')';
      list.appendChild(li);
    }
    div.appendChild(list);
    x.parentNode.replaceChild(div,x);
  }
</script>

2 个答案:

答案 0 :(得分:1)

改变这个:

if(x){
    x.onclick = function(){
      var term = this.href.split('=')[1];
      this.innerHTML += ' (loading...)';
      KEYWORDS.get(term,seed);
      return false;
    }
  }

这样的事情:

function loadSomething(){
  var term = x.href.split('=')[1];
  x.innerHTML += ' (loading...)';
  KEYWORDS.get(term,seed);
  return false;
}
loadSomething();

你可以把它留在原处,但为了便于阅读,请把它放在种子函数下面。

您应该使用类似onload或document.ready的内容,但也可以将整个脚本文件移动到页面底部

答案 1 :(得分:0)

不要那样设置事件处理程序。使用addEventListener和(对于IE)attachEvent。