jQuery .bind()选择器

时间:2011-09-21 00:08:15

标签: javascript jquery jquery-mobile

我正在尝试将click事件绑定到一个锚点,我无法找出正确的选择器... bind()是否对选择器特别挑剔?

这是我的代码不起作用:

$(".ui-navbar").delegate("a.location-menu-btn", "click", function() {
    navigateToPage("location.html", { });
});

以下代码确实有效,但会导致整个机身显示为在Android智能手机上点击它(在anachor周围有一个丑陋的黄色框)。

$("body").delegate("a.location-menu-btn", "click", function() {
    navigateToPage("location.html", { });
});

这是html:

<div data-role="navbar" class="ui-navbar ui-navbar-noicons" role="navigation">
                        <ul class="ui-grid-b">
                            <li class="ui-block-a">
                                <a href="javascript:void(0)" data-ajax="false" class="search-menu-btn ui-btn ui-btn-up-a" data-theme="a"><span class="ui-btn-inner"><span class="ui-btn-text"><span class="lang-nav-search">Search</span></span></span></a>
                            </li>
                            <li class="ui-block-b">
                                <a href="javascript:void(0)" data-ajax="false" class="location-menu-btn ui-btn ui-btn-up-a" data-theme="a"><span class="ui-btn-inner"><span class="ui-btn-text"><span class="lang-nav-location">Location</span></span></span></a>
                            </li>
                            <li class="ui-block-c">
                                <a href="javascript:void(0)" data-ajax="false" class="settings-menu-btn ui-btn ui-btn-up-a" data-theme="a"><span class="ui-btn-inner"><span class="ui-btn-text"><span class="lang-nav-settings">Settings</span></span></span></a>
                            </li>
                        </ul>
                    </div>

2 个答案:

答案 0 :(得分:3)

live已弃用。请改用on

答案 1 :(得分:1)

如果你想在.ui-navbar中的锚元素上有一个点击事件,并且HTML是在页面加载时存在的静态HTML,那么你可以使用它:

$(document).ready(function() {
    $(".ui-navbar a").click(function() {
        navigateToPage("location.html", { });
    });
});

这将使HTML中的<a>个标签可以点击。但是,这些<a>代码没有内容,因此没有大小,所以没有人能够点击它们,直到你给他们一些内容。

如果您的问题与此不同,请解释。

如果通过脚本动态添加内容,则可以使用.live(),如下所示:

$(document).ready(function() {
    $(".ui-navbar a").live("click", function() {
        navigateToPage("location.html", { });
    });
});