2012-05-19 69 views
1

我有一个代码与link,当点击链接我想做点什么,但我不知道为什么点击不起作用,并且警报甚至不会启动jquery onclick不起作用

jQuery代码

$(document).ready(function(){ 
    $("#editConcept").on('click','ecAddLink',function(){ 
     $.getJSON("http://localhost/Mar7ba/Ontology/getAllConcepts/TRUE",function(data){ 
      alert("William Roma"); 
      var options = ''; 
      options+="<option>Select Concept</option>"; 
      for(var i=0;i<data.length;i++){ 
       options += "<option>"+data[i]+"</option>"; 
      } 
      $.getJSON("http://localhost/Mar7ba/Ontology/getAllRelations/TRUE",function(data){ 
       var options2 = ''; 
       options2+="<option>Select Concept</option>"; 
       for(var i=0;i<data.length;i++){ 
        options2 += "<option>"+data[i]+"</option>"; 
       } 
       $("#editConcept ul li:last").before('\ 
<li>\n\ 
    <p>\n\ 
     <label>Concept</label>\n\ 
     <select name="newConcepts[]">'+options+'</select>\n\ 
     <span class="errorMessage"></span>\n\ 
    </p>\n\ 
    <p>\n\ 
     <label>Relations</label>\n\ 
     <select name="newRelations[]">'+options2+'</select>\n\ 
     <span class="errorMessage"></span>\n\ 
     <a href="#" class="removeA">delete</a>\n\ 
    </p>\n\ 
</li>'); 
      }); 
     }); 
    }); 
}); 

HTML代码

<div id="editConcept" class="container"> 
    <form id="ecForm" method="POST" action="<?php echo URL; ?>Ontology/conceptEdit"> 
     <ul> 
      <li> 
       <label>Select Concept</label> 
       <select class="ConceptSelector1"></select> 
       <span class="errorMessage"></span> 
      </li> 
      <li id="ecOldRelations"> 
       <p> 
        <label>Old Relations</label> 
       </p> 
      </li> 
      <li id="ecNewRelations"> 
       <label>New Relations</label> 
       <a href="#" class="smallLink" id="ecAddLink">add new relations</a> 
      </li> 
      <li> 
       <input type="submit" class="button1" value="save"/> 
      </li> 
     </ul> 
    </form> 
</div> 

the link has an id = ecAddLink 

回答

5

您是missing the pound sign的选择:#ecAddLink。大多数jQuery选择器看起来像有效的CSS字符串,如果我没有记错的话,Prototype是接受没有磅符号的ID的框架。除此之外,我也非常希望在代码中拥有完整的URL,你应该尝试去相对的,如果你不能全局地存储webroot var。而且我也不是一个字符串中HTML这么多的粉丝(看起来很糟糕,难以维护/更新等)。您应该将HTML放在页面中的隐藏元素中,或者更简单,就像IMO那样。

+0

是是,谢谢你,很抱歉,真的1小时试图找出错误,但还没有出现,我的脑海里,错误很容易这样 –

+0

我是jquery的新手,是的,你是对的,我也不喜欢把html放在字符串中,谢谢你对隐藏元素的建议,我会试着学习它 –

+0

我相信你绝对是URL谈论可能由服务器端产生。 – VisioN

3

你忘了把#通过ID选择元素:

$("#editConcept").on('click','#ecAddLink',function() { 
    ... 
}); 
+0

是的男人,你的权利,谢谢 –

+1

它经常发生。留心 ;) – VisioN