1

我有一个带有 a 的代码link,当单击我想做某事的链接时,但我不知道为什么单击不起作用,并且警报甚至不会触发

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
4

2 回答 2

5

您在选择器中缺少井号#ecAddLink。大多数 jQuery 选择器看起来像有效的 CSS 字符串,如果我没记错的话,Prototype 是接受不带井号的 ID 的框架。

除此之外,我也非常讨厌在这样的代码中包含完整的 URL,如果你不能全局存储 webroot var,你应该尝试去相对。而且我也不喜欢在字符串中包含这么多 HTML(看起来很糟糕,难以维护/更新等)。您应该将 HTML 放在页面中的隐藏元素中,或者放在脚本标签中,这样 IMO 更容易。

于 2012-05-19T16:53:46.553 回答
3

您忘记放置#按 ID 选择元素的位置:

$("#editConcept").on('click','#ecAddLink',function() {
    ...
});
于 2012-05-19T16:54:58.317 回答