1

リンクをクリックすると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 をページの隠し要素に配置するか、 script タグ内に配置する必要があります。

于 2012-05-19T16:53:46.553 に答える
3

#ID で要素を選択するための配置を忘れました:

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