jquery mobile event.preventdefault()无效

时间:2015-10-17 15:52:24

标签: jquery-mobile jquery-selectors

奇怪的问题,显然并不常见于jquery mobile。我有一个两项列表视图弹出窗口,旨在允许用户通过<a href="someurl.com">切换视图。每个选项都旨在在同一页面上显示json数据。我不希望href将观看者带到另一个页面,因此我尝试使用event.preventdefault()

但经过大量研究后,我仍无法阻止href跳转到google.com,即使(我认为)我正在使用event.preventdefault();

这里是相关的html:

<div data-role='popup' id='popupSwitchView' data-theme='none'>
    <ul data-role='listview'>
        <legend>Choose a view</legend>
        <li><a href='javascript:;' data-role='button' data-transition='fade' data-mini='true' class='ui-btn-active switchview' id='ABC' name='theView' value='ABC'>ABC</a>
        </li>
        <li><a href='http://google.com' data-role='button' data-transition='fade' data-mini='true' class='switchview' id='DEF' name='theView' value='DEF'>DEF</a>
        </li>
    </ul>
</div>

......这里是jquery:

$('#DEF').on('click', function () {
    event.preventDefault();

我想知道它是否与我使用选择器的方式相同,但我使用相同的代码here测试了选择器,看起来我的选择器很好。

Chrome控制台没有显示任何错误。关于我在这里失踪的想法?

修改

我忽略了上面的html和jquery是php变量$html_jq的一部分,它是从另一个php文件中回显的。

file1.php回显$html_jq,在file2.php中定义。

2 个答案:

答案 0 :(得分:0)

我认为答案的一部分(可能是0.01%)。选择器没有抓住任何东西,这解释了不合作的行为。我认为这意味着jquery mobile和jquery本身正在幕后处理这个事件,他们指的是其他东西,显然不是我的选择器。

正如this stack question中所建议的那样,我深入研究了点击该链接时实际发生的事情,这很奇怪。

,即&#34;点击&#34;在Chrome开发者工具Source标签中查看 - &gt; Event Listener Breakpoints - &gt; Mouse - &gt; Click然后点击f11直到它停止跳转,我发现了一个似乎不可避免的While循环,其中事件被挂起。 While循环似乎位于第4541行的jquery-2.1.1.js中。

这是一个有趣的引擎盖下的东西,在某些方面证明非常有价值,但我不确定在这里做什么。有什么建议吗?

答案 1 :(得分:0)

截至此日期,当您尝试在Jquery 2.1.4之后使用JQM 1.4.5时会出现此问题

请参阅Jquery mobile github