Jquery ui jquery-停止传播到jquery UI选项卡,并遵循链接

Jquery ui jquery-停止传播到jquery UI选项卡,并遵循链接,jquery-ui,jquery-ui-tabs,stoppropagation,Jquery Ui,Jquery Ui Tabs,Stoppropagation,如果之前有人问过这个问题,我会道歉——我搜索了一下,没有找到任何与我看到的完全相符的东西 情况是这样的:我使用jQueryUI选项卡来选择页面上的图像。对于其中一个选项卡,所需的结果是跟随该选项卡的链接,打开一个新的浏览器选项卡(我将尝试在这里直接使用“Tab”一词),并忽略其余的UI选项卡代码。因此,本质上,我希望选项卡创建用于选择的可视选项卡,但不希望在单击特定选项卡时执行任何通常的jQuery处理。对于其他选项卡,默认的UI选项卡行为是正常的 我想我可以做的是将一个事件附加到该选项卡上,并

如果之前有人问过这个问题,我会道歉——我搜索了一下,没有找到任何与我看到的完全相符的东西

情况是这样的:我使用jQueryUI选项卡来选择页面上的图像。对于其中一个选项卡,所需的结果是跟随该选项卡的链接,打开一个新的浏览器选项卡(我将尝试在这里直接使用“Tab”一词),并忽略其余的UI选项卡代码。因此,本质上,我希望选项卡创建用于选择的可视选项卡,但不希望在单击特定选项卡时执行任何通常的jQuery处理。对于其他选项卡,默认的UI选项卡行为是正常的

我想我可以做的是将一个事件附加到该选项卡上,并调用event.stopPropagation(),这将防止UI代码冒泡,然后让它通过并获取链接(选项卡的单击事件位于“a”标记上)。我确实设置了它,使我的事件代码排在第一行,它在UI代码之前执行,并阻止UI代码运行

但是,如果这样做,我会在控制台中看到以下消息:

跨源请求被阻止:同源策略不允许读取[链接]处的远程资源(原因:CORS标头“访问控制允许源”丢失)

(注意:该链接指向不同域中的交互式页面,这是我打开新浏览器选项卡的主要原因)

“新浏览器”选项卡没有打开,我只剩下下面空白内容的选定选项卡

如果我在StopRoPagation和add event.preventDefault()之前对链接执行“window.open”,我会在新的浏览器选项卡中获得页面打开的结果,但仍然会看到错误消息。由于一些肥胖的手指,我还注意到,如果我在点击事件代码中有一个未定义的函数,那么它也有期望的反应

不管怎么说,有什么蠢事我没看到吗?我是否应该对一个解决方案感到满意,该解决方案给出了最终的行为,但有错误消息


非常感谢

所以当我怀疑我在这件事上做错了。这要归功于jQueryUI的新手性


UI提供了一个beforeActivate()事件,它正是我想要的。在函数中,我可以检查建议的新选项卡是否具有我指定的类,即“跳转到链接”,执行窗口调用以创建新的浏览器选项卡,然后返回false,以便UI知道我不希望激活该选项卡。否则该函数返回true。

进一步查看,jQuery UI事件处理程序正在启动-这就是为什么我最终选择了该特定选项卡。交叉原点错误在这里是有意义的,因为“a”标记指向我的域之外。因此,即使我调用了stopPropagation,并且isppropagationstopped在此之后为TRUE,jQuery UI代码仍然会执行。