单击单个标记</p>时,为什么同样的<p>标记id会被触发

时间:2014-10-15 09:16:00

标签: javascript jquery

我想使用多个<p>标记,所有标记都具有相同的id属性,用于使用jquery的多种用途。但当我点击任何一个时,jquery为每个<p>标签工作。我将如何解决它。

<p id="inCom">Comment</p>

我希望将此<p>用于具有相同ID的多次,并且点击它会向我显示输入div。

<script type="text/javascript">
        $(document).ready(function(){
            $(document).delegate("#inCom","click",function(e){
                $( "p" ).addClass( "clickme" );
                if($( "#inCom" ).hasClass( "clickme" )){
                    $('.comDiv').show();
                }

            });

        });
</script>

<div class="comDiv">
    <div class="comimg">
         <img src="images/placeholder_icon.png" alt="avatar" width="50px" height="50px">  
     </div>
     <div class="combody">
        <form id="comForm">
            <input type="text" name="comment"class="input" id="comment" placeholder="Type your comment" size="50" />
             <input type="submit" class="combtn" id="comsubmit" value="Post">
        </form>

    </div>
</div>

2 个答案:

答案 0 :(得分:0)

为什么不做。相反,如果id使用<p>标记的类

$(document).ready(function(){
    $('.inCom').on('click',function(e){
        $( "p" ).addClass( "clickme" );
        if($( "#inCom" ).hasClass( "clickme" )){
            $('.comDiv').show();
        }
    });
});

答案 1 :(得分:0)

根据HTML 4.01 specification ID必须是文档范围内唯一的。多个HTML元素具有相同的ID&#39;不是正确的HTML标准。

尝试对不同的HTML元素使用相同的类,并将click事件绑定到类选择器。