点击事件上的jquery无法处理无序列表中的列表项

时间:2011-01-15 12:05:31

标签: jquery

我有以下列表,其中包含一个id为#sortable1的无序列表,我想要实现的是每当使用<来点击li元素时ul id =“sortable2”>应该发生一个onclick事件,并从被点击的li元素中提醒id。我也有一个元素也在无序列表中,不能用class =“emptyMessage”点击

我卡住了,不知道如何继续

到目前为止我已经

<ul id="sortable1" class="connectedSortable ui-sortable">
<li class="ui-state-default" id="1">Name1</li>
<li class="ui-state-default" id="2">Name2</li>
<li class="ui-state-default" id="3">Name3</li>
<li class="ui-state-default" id="4">Name4</li>
<li class="ui-state-default" id="5">Name5</li>
<li style="display: list-item;" class="emptyMessage">No more contacts available</li></ul>

我的JQUERY代码

$("#sortable1 li").click(function() {
          alert('Clicked list.'+$(this).value);
         });

5 个答案:

答案 0 :(得分:15)

这应该这样做:

$("#sortable1 li").not('.emptyMessage').click(function() {
       alert('Clicked list. ' + this.id);
});

演示:http://www.jsfiddle.net/gztRq/2/

答案 1 :(得分:2)

$("#sortable1 > li.ui-state-default").click(function() {
    alert("Clicked list " + $(this).attr("id"));
});

答案 2 :(得分:0)

JavaScript中存在语法错误。它应该是:

$("#sortable1 li").click(function() {
    alert("Clicked list." + $(this).value);
});

此外,我认为您的意思是$(this).html(),而不是$(this).value - <li>没有值(在jQuery对象上它将是.val())。

Here's a working version

答案 3 :(得分:0)

也许是错误的选择器?这是我的代码(工作正常):

<html>
    <head>
        <title>MooExample</title>
        <script type="text/javascript" src="jquery.js"></script>
        <script type="text/javascript">
            $(document).ready(function() {
                $("#sortable1 > li").click(function() {
                    alert($(this).html());
                });
            });
        </script>
    </head>

    <body>
        <ul id="sortable1" class="connectedSortable ui-sortable">
            <li class="ui-state-default" id="1">Name1</li>
            <li class="ui-state-default" id="2">Name2</li>
            <li class="ui-state-default" id="3">Name3</li>
            <li class="ui-state-default" id="4">Name4</li>
            <li class="ui-state-default" id="5">Name5</li>
        </ul>
    </body>
</html>

UPD:对不起,我认为<li>项没有 val()属性=)

答案 4 :(得分:0)

在选择

时使用它更具体
$(document).ready(function () {
    $("ul#sortable1 li").click(function() {
    alert("Clicked list." + $(this).text());
});
});