0

我正在使用 jquery 模板并具有以下 html 标记

<div id="results">           
  <div class="CommentItem" commentid="33064" id="33064" data-guid="/Profile/Profile.aspx?id=Charliedog33"> 
    <div class="CommentPic">                 
      <img src="AspNetForumAvatarguy18.jpg">
    </div>             
    <div class="CommentText">thsi is text</div>
  </div>
  <div class="CommentItem" commentid="33064" id="33064" data-guid="/Profile/Profile.aspx?id=Charliedog33"> 
    <div class="CommentPic">                 
      <img src="AspNetForumAvatarguy18.jpg">
    </div>             
    <div class="CommentText">thsi is text</div>
  </div>
</div>

它确实在列表中呈现数据,但我如何在单个项目上注册事件。(commentid 确实具有唯一值)

  $("#results").live("click", function (evt) {

        if ($(this).evt.attr('commentid') != null) {
            alert("event registered goes here");
        }
        else {
            alert("there is prolem");
        }

    });
4

3 回答 3

1

首先你应该使用 on() 因为 live 已被弃用。尝试这样的事情:

$("body").on("click", ".CommentItem", function () {
    if ($(this).attr('commentid')) {
        alert("event registered goes here");
    }
    else {
        alert("there is prolem");
    }

});
于 2013-03-22T13:16:08.840 回答
0
 if ($(this).attr('id') != null) {
            alert("event registered goes here");
        }
        else {
            alert("there is prolem");
        }

如果 id 不可用 $(this).attr("id") 将返回 undefined。

于 2013-03-22T13:20:44.930 回答
0

采用

$("#results .CommentItem").live("click", function (evt) {
    if ($(evt.target).closest('.CommentItem').attr('commentid') != null) {
        alert("event registered goes here");
    } else {
        alert("there is prolem");
    }
});

演示:小提琴

如果您使用 jQuery >= 1.7,那么我建议使用.on()而不是.live()因为它在 1.7 中已弃用并在 1.9 中删除

$(function(){
    $(document).on("click", '#results .CommentItem', function (evt) {
        var commentItem = $(evt.target).closest('.CommentItem');
        var commentid = commentItem.attr('commentid');
        if ( commentid ) {
            alert("event registered goes here: " + commentid);
        } else {
            alert("there is prolem");
        }
    });
})

演示:小提琴

于 2013-03-22T14:55:32.440 回答