我正在尝试将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>
答案 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", { });
});
});