当前位置: 首页 > 知识库问答 >
问题:

如何在不破坏下拉框功能的情况下停止传播

师增
2023-03-14

我已经创建了一个在视觉上类似于一张卡(游戏卡)的对象-一张顶部有图像的卡,下面有一些关于该卡的信息,包括文本和符号。页面上可以有许多卡片。

单击一张卡片会将用户带到一个新页面。这是通过使用href将所有卡片元素包装在一个div中完成的。每张卡都有一个带有一些选项的下拉菜单。最初的问题是,单击下拉菜单时,卡也会被单击。

我想在单击下拉菜单时阻止卡被单击。单击下拉菜单时,下拉菜单本身应正常运行。

href div和下拉元素如下所示(我在href div中使用onclick来防止嵌套锚标记):

<div onclick="window.location.href = 'someurl'" style="cursor: pointer;">
    ...
    <a href="#" id="dd" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
        ...
    </a>
    <ul class="dropdown-menu dropdown-menu-right" role="menu">
        ...
    </ul>
    ...
</div

我试图输入event.stop传播来阻止卡被点击:

    <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false" onclick="event.stopPropagation(); $('#dd').toggle();">

虽然这种方法阻止了卡片被点击,但它也忽略了下拉菜单的一些功能。例如,单击屏幕上的任意位置或选择菜单中的某个选项将不再关闭它。菜单将保持打开状态,直到明确单击下拉按钮。

共有2个答案

仲孙德惠
2023-03-14

此代码笔显示您想要使用的功能。它还使用事件。stopPropagation(),不确定是否与您已经尝试过的方法相同。但这里的区别在于,它捕获了click元素,您可以向每个click事件添加我们自己的代码,例如关闭任何打开的菜单/重定向到另一个页面/其他操作。

这里有密码

您还没有显示您使用的完整代码,所以我不能说这是否完全符合您的需求,但您可以根据自己的需求对其进行调整

武元白
2023-03-14

您可能希望从div中获取下拉列表,以将您重定向到另一个页面。

<div onclick="window.location.href = 'someurl'" style="cursor: pointer;">
    ...
    <a href="#" id="dd" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
    ...
    </a>
    ...
</div
<ul class="dropdown-menu dropdown-menu-right" role="menu">
    ...
</ul>
 类似资料:
  • 我最近通过从源代码编译在CentOS机器上安装了Python 2.7.3。Python 2.7.3安装在/opt/python2.7上,当我安装它时,我只需更改/usr/bin/Python以指向新版本。这显然是错误的,因为当我这样做的时候,它打破了百胜。我会得到以下内容。 我更改了/usr/bin/python以指向python 2.6.6,但现在2.6.6是python的默认版本。你知道怎么解

  • 问题内容: 我有以下代码: 在发生某些事件之后,我应该停止在的方法中声明的操作,该方法实现。 我怎样才能做到这一点?我无法关闭执行器,只能撤消我的定期任务。我可以用吗?如果可以的话,请告诉我它将如何工作。 问题答案: 使用。该是你的任务的处理。您需要取消此任务,它将不再执行。 实际上,是签名,并将其与参数一起使用将导致当前正在运行的执行线程被调用中断。如果线程在阻塞的可中断调用(例如)中等待,则会

  • 为了记录请求和响应,我添加了一个LoggingRequestInterceptor,它实现了ClientHTTPPrequestinterceptor。。。 响应主体是一个流,如果我将其读取到我的拦截器中,TestRestTemplate将无法将其反序列化到我的对象模型中。换句话说,当我调用testRestTemplate时。获取…我将始终获取空对象(即使我看到对象我的响应)。 要解决RestTe

  • 问题内容: 我想重写类上的方法以执行某些操作,但我不想破坏默认行为。 正确的方法是什么? 问题答案: 覆盖应该没问题-只能作为最后的选择,即,如果实例中没有与名称匹配的属性。例如,如果您访问,则仅当没有调用属性时才会被调用。如果该属性是您不想处理的属性,请引发: 但是,与不同,首先会被调用(仅适用于新样式类,即从对象继承的类)。在这种情况下,您可以保留默认行为,如下所示: 有关更多信息,请参见Py

  • 假设我有两个类叫做ad。 它们都实现了。 对于只有两种方法,分别称为和。 一切都很好。但是,虽然这似乎很好地利用了s,但我认为如果我需要向这个添加方法,实现就会中断,即我需要去实现这些类中的新方法,这打破了“封闭-开放原则”。 所以我想,除了,如果将来需要添加新方法,我还会使用类。 例如,。 这听起来是个好计划(如果不是,请纠正我)。 但问题是,如果这些类已经有其他类了怎么办?在这种情况下,我不能

  • 问题内容: 我希望在不停止应用程序的情况下分析Java应用程序。我可以在应用程序运行时以某种方式添加Javaagent吗? 问题答案: 根据java.lang.instrument软件包的文档,应该是可能的。 VM启动后启动代理 一个实现可以提供一种机制,可以在VM启动之后的某个时间启动代理。有关如何启动的详细信息是特定于实现的,但通常应用程序已启动并且其主要方法已被调用。在虚拟机启动后实现支持启