无法分配点击事件

时间:2012-07-24 18:02:19

标签: javascript jquery html

我有以下HTML代码。在我的页面中有许多标签,它们有class ='posta',但是我想要分配onclick事件,只有post属性。

<ul class="posts_li">
        <li>
            <a href="#" class="posta" post="status">Post</a>
        </li>
        <li>
            <a href="#" class="posta" post="act">Act</a>
        </li>
        <li>
            <a href="#" class="posta" post="event">Event</a>
        </li>
        <li>
            <a href="#" class="posta" post="news">Create News</a>
        </li>
    </ul>

我的Jquery代码用于分配事件

$(".posta").click(function(){
            alert("here");
            if($(this).attr("post")){
                alert($(this).attr("post"));
            }
        });

5 个答案:

答案 0 :(得分:4)

$(".posta[post]").click(....);

小提琴:http://jsfiddle.net/maniator/LmrPR/

答案 1 :(得分:1)

然后在选择器中使用[attribute=value]

Example

$('.posts_li').on('click', '.posta[post]', function() {
    alert($(this).attr("post"));
    return false;
});​

此外,您可以通过将每个项目委托给父项来避免为每个项目放置事件处理程序。在这个例子中,我使用.on()方法(jQuery 1.7+)为所有子元素在<ul>上放置了一个处理程序。对于较旧的jQuery(1.4.2+),.delegate()也可用。

答案 2 :(得分:0)

使用可以使用属性选择器[propertyname]来仅选择具有该属性的节点。

$(".posta[post]").click(function(){ ... });

答案 3 :(得分:0)

您可以使用css / jquery属性选择器执行此操作:

$(".posta[post]").click(......... your code here)

以下是示例: http://jsfiddle.net/wHvkF/

答案 4 :(得分:0)

我会用:

完成它

请参阅此working Fiddle示例。 列表中的最后一个没有提醒

$(".posta[post]").click(function(e) {
    e.preventDefault();
    alert("here");
});

自jQuery版本1.0开始工作。