0

我有以下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"));
            }
        });
4

5 回答 5

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

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

于 2012-07-24T18:04:27.917 回答
1

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

例子

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

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

于 2012-07-24T18:07:36.373 回答
0

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

$(".posta[post]").click(function(){ ... });
于 2012-07-24T18:04:36.480 回答
0

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

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

这是示例:http: //jsfiddle.net/wHvkF/

于 2012-07-24T18:12:32.033 回答
0

我会使用:

请参阅此工作小提琴示例。列表中的最后一个不提醒

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

从 jQuery 1.0 版开始工作。

于 2012-07-24T18:16:02.580 回答