Jquery mobile jquery mobile event.preventdefault()不工作

Jquery mobile jquery mobile event.preventdefault()不工作,jquery-mobile,jquery-selectors,Jquery Mobile,Jquery Selectors,奇怪的问题,显然在jquery mobile中并不少见。我有一个两项listview弹出窗口,允许用户通过切换视图,我的选择器似乎很好 Chrome控制台没有显示任何错误。你有没有想过我在这里遗漏了什么 编辑 我忽略了提到上面的html和jquery是php变量$html\u jq的一部分,该变量从另一个php文件中得到响应 i、 例如,file1.php回应了$html\u jq,这是file2.php中定义的我认为答案的一部分(可能是0.01%)。选择器没有抓取任何东西,这解释了这种不合作的

奇怪的问题,显然在jquery mobile中并不少见。我有一个两项listview弹出窗口,允许用户通过
切换视图,我的选择器似乎很好

Chrome控制台没有显示任何错误。你有没有想过我在这里遗漏了什么

编辑

我忽略了提到上面的html和jquery是php变量
$html\u jq
的一部分,该变量从另一个php文件中得到响应

i、 例如,
file1.php
回应了
$html\u jq
,这是
file2.php
中定义的
我认为答案的一部分(可能是0.01%)。选择器没有抓取任何东西,这解释了这种不合作的行为。我认为这意味着jquery mobile和jquery本身在幕后处理这一事件,它们指的是其他东西,显然不是我的选择器

正如在中所建议的,我深入研究了当你点击那个链接时会发生什么,这很奇怪

i、 例如,在Chrome开发者工具
源代码
选项卡->
事件监听器断点
->
鼠标
->
点击
,然后点击
f11
,直到它停止跳跃,我发现在事件挂起的
循环中出现了一个不可避免的
。While循环似乎位于第4541行的
jquery-2.1.1.js

这是一个有趣的幕后故事,在某些时候会被证明是非常有价值的,但我不确定在这里该做什么。有什么建议吗?

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

正如在中所建议的,我深入研究了当你点击那个链接时会发生什么,这很奇怪

i、 例如,在Chrome开发者工具
源代码
选项卡->
事件监听器断点
->
鼠标
->
点击
,然后点击
f11
,直到它停止跳跃,我发现在事件挂起的
循环中出现了一个不可避免的
。While循环似乎位于第4541行的
jquery-2.1.1.js


这是一个有趣的幕后故事,在某些时候会被证明是非常有价值的,但我不确定在这里该做什么。有什么建议吗?

截至目前,当您尝试将JQM 1.4.5与Jquery 2.1.4之后的任何内容一起使用时,就会出现此问题


请参见

自即日起,当您尝试将JQM 1.4.5与Jquery 2.1.4之后的任何内容一起使用时,就会出现此问题


请参见

您需要将--event--放在括号内,这样它就可以被选中--$('#DEF')。在('click',function(event){--也可以尝试--event.stopImmediatePropagation()--它可以防止其余的处理程序被执行,并防止事件在DOM树中冒泡。@Tasos谢谢,是的,尝试了--也尝试了$('#DEF')。在('click',函数(e){e.event.preventDefault();…不起作用。event.stopImmediatePropagation()也不起作用不幸的是。是的,它们并不总是起作用。你可以做的是设置一个标志,例如onclick。你可以将一个变量设置为on状态。然后将超时设置为1秒左右,将on状态清除为off。现在在你的其他单击函数中,你可以检查——如果状态为on,那么就不要运行代码。这是一种变通方法,可以很好地工作。再次感谢。我的编辑可能会出错他对此有了一些了解(即html和jq在一个php变量中得到了响应)。我昨天不认为这是相关的,但我开始怀疑它是我经常这样使用的:
$('#DEF')。on('click',function(event){event=event | window.event;event.preventDefault()})
您需要将--event--放在括号内,这样它就可以被提取--$('#DEF')。在('click',function(event){--也可以尝试--event.stopImmediatePropagation()--它可以防止其余的处理程序被执行,并防止事件在DOM树中冒泡。@Tasos谢谢,是的,尝试了--也尝试了$('#DEF')。在('click',函数(e){e.event.preventDefault();…不起作用。event.stopImmediatePropagation()也不起作用不幸的是。是的,它们并不总是起作用。你可以做的是设置一个标志,例如onclick。你可以将一个变量设置为on状态。然后将超时设置为1秒左右,将on状态清除为off。现在在你的其他单击函数中,你可以检查——如果状态为on,那么就不要运行代码。这是一种变通方法,可以很好地工作。再次感谢。我的编辑可能会出错他对此有了一些了解(即html和jq在一个php变量中得到了响应)。我昨天不认为这是相关的,但我开始怀疑它是我经常这样使用的:
$('#DEF')。on('click',function(event){event=event | | window.event;event.preventDefault();})
<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>
$('#DEF').on('click', function () {
    event.preventDefault();