Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript bind()选择器_Javascript_Jquery_Jquery Mobile - Fatal编程技术网

Javascript bind()选择器

Javascript bind()选择器,javascript,jquery,jquery-mobile,Javascript,Jquery,Jquery Mobile,我正在尝试将单击事件绑定到锚点,但找不到正确的选择器。。。bind()对选择器特别挑剔吗 以下是我的代码,它不起作用: $(".ui-navbar").delegate("a.location-menu-btn", "click", function() { navigateToPage("location.html", { }); }); 下面的代码确实有效,但会使整个身体看起来像是在安卓智能手机上被点击(anachor周围丑陋的黄色框) 这是html: <div data-r

我正在尝试将单击事件绑定到锚点,但找不到正确的选择器。。。bind()对选择器特别挑剔吗

以下是我的代码,它不起作用:

$(".ui-navbar").delegate("a.location-menu-btn", "click", function() {
    navigateToPage("location.html", { });
});
下面的代码确实有效,但会使整个身体看起来像是在安卓智能手机上被点击(anachor周围丑陋的黄色框)

这是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>


如果您希望在
.ui导航栏中的锚元素上有一个单击事件,并且HTML是页面加载时存在的静态HTML,那么您可以使用以下方法:

$(document).ready(function() {
    $(".ui-navbar a").click(function() {
        navigateToPage("location.html", { });
    });
});
这将使HTML中的
标记可单击。但是,那些
标记没有内容,因此没有大小,因此在您给它们一些内容之前,没有人能够单击它们

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

如果内容是通过脚本动态添加的,则可以像下面这样使用.live():

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

如果您希望在
.ui navbar
中的锚元素上有一个单击事件,并且HTML是页面加载时存在的静态HTML,那么您可以使用以下方法:

$(document).ready(function() {
    $(".ui-navbar a").click(function() {
        navigateToPage("location.html", { });
    });
});
这将使HTML中的
标记可单击。但是,那些
标记没有内容,因此没有大小,因此在您给它们一些内容之前,没有人能够单击它们

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

如果内容是通过脚本动态添加的,则可以像下面这样使用.live():

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

live
已弃用。改为在
上使用

live
不推荐使用。在
上使用

我自己实际上没有太多地使用
委托
,但不是
$(“body”)。委托(“a.location-menu-btn”,“click”…)
$(“a.location-menu-btn”)相同。live('click')
?@nickf-Close,但不一样
$(“a.location-menu-btn”).live…
将首先遍历匹配
a.location-menu-btn
的所有元素的DOM,但随后不会对匹配集执行任何操作。它将只使用
live
的选择器。使用
委托时
,永远不会遍历DOM。单击时,它将尝试匹配选择器。如您所见,
委托
现场
更有效。有关更多信息,请看我的回答:我猜您的代码是在加载页面或jQuery之前执行的。尝试将其放入
$(function(){…})中没有“绑定选择器”这样的东西。选择器返回元素列表(列表可能为空)。您对列表所做的操作与用于创建列表的选择器无关。我自己实际上没有太多地使用
delegate
,但不是
$(“body”)。delegate(“a.location-menu-btn”,“click”…)
$(“a.location-menu-btn”)相同。live(“click”…)
?@nickf-Close,但不同
$(“a.location-menu-btn”).live…
将首先遍历匹配
a.location-menu-btn
的所有元素的DOM,但随后不会对匹配集执行任何操作。它将只使用
live
的选择器。使用
委托时
,永远不会遍历DOM。单击时,它将尝试匹配选择器。如您所见,
委托
现场
更有效。有关更多信息,请看我的回答:我猜您的代码是在加载页面或jQuery之前执行的。尝试将其放入
$(function(){…})中没有“绑定选择器”这样的东西。选择器返回元素列表(列表可能为空)。您对列表所做的操作与用于创建列表的选择器无关。