2

我是否需要做任何特别的事情来捕捉通过 jquery 添加到 dom 的元素的点击事件,

我将以下内容添加到 dom:

$('.dvPagerCities > .pagination > ul > li > a').addClass("pageCities")

通过 chrome 在 html 中显示为

<a class="pageCities">»</a>

但是当我尝试捕捉点击事件时,不会显示任何警报。

<script>
    $(function () {
        $('.pageCities').click(function () {
            alert('City click detected');
            return false;
        });
    });
</script>

- - - - - - - 更新 - - - - - - - -

<script>
    $('.dvPagerCities > .pagination > ul > li > a').addClass("pageCities")
    $(function () {
        $(".getCities").click(function () {
            var city = $(this).text();
            $.ajax({
                url: '@Url.Action("pvDisplayListOfWeatherCities", "Weather")',
                type: 'GET',
                data: { id: $(this).attr("dataCountry")},
                dataType: 'html',
                success: function (result) {
                    //alert('Country click detected'),
                    $('Title').text('Cities in ' + city),
                    $('#dvFullPage').remove();
                    $('#dvPartial').html(result);
                },
                error: function () {
                    alert("error");
                }
            });
            return false;
        });
    });


</script>
<script>
    $(function () {
        $('.dvPagerCities').on('click', '.pageCities', function () {

            alert('City click detected');
            return false;
        });
    });
</script>

----------------HTML 已添加--------------

<div class="dvPagerCities">
<div class="pagination">
<ul>
<li class="PagedList-skipToPrevious">
<a href="/Weather/Index/Australia?p=1" class="pageCities">«</a>
</li>
<li class="disabled PagedList-pageCountAndLocation">
<a class="pageCities">Page 2 of 2.</a>
</li>
<li class="disabled PagedList-skipToNext">
<a class="pageCities">»</a>
</li>
</ul>
</div>
</div>

-----------------附加信息-----------------

好的,如果我单击链接并转到天气页面,然后单击国家并显示该国家/地区的城市列表并尝试页面没有任何反应,我会刷新整个页面。

但是,如果我再次单击页面链接,我会收到警报。

为什么在第 1 个城市出现并在检测到点击之前进行整页更新时没有上课

4

1 回答 1

7

如果您在添加类之前<script>执行,则该方法找不到任何东西,也不会绑定到任何东西。确保首先添加,或使用事件委托:.pageCities.click.pageCities

$(".dvPagerCities").on('click', '.pageCities', function () {
于 2013-02-06T12:52:21.107 回答