Bootstrap jquery Uncaught错误:错误,无法识别的表达式

mklgxw1f  于 5个月前  发布在  Bootstrap
关注(0)|答案(6)|浏览(79)

我试图在 Bootstrap 下拉菜单中添加外部http://链接,但它总是导致

Uncaught Error: Syntax error, unrecognized expression: http://example.com/

字符串
下面是我在jQuery v1.11.3和bootstrap v3.3.5中使用的代码

<nav class="main-navi">
    <div class="webinarlink"><a class="btn btn-danger btn-block" data-target="#" style="background-color:#EA4A2B;margin:auto;" href="http://example.com/" target="_blank"><i class="icon-users"></i>Webinar</a></div>
    <ul>
        <li class="active"><a class="scroll-up" href="#home"><i class="fa fa-home"></i>&nbsp;Home</a></li>
        <li class=""><a class="scroll" href="#features">Features</a></li>
        <li class=""><a class="scroll" href="#testimonials">Testimonials</a></li>
        <li class=""><a class="scroll" href="#pricing">Prices</a></li>
        <li class="has-dropdown"><a class="scroll" href="#">Help<i class="fa fa-caret-down"></i></a>
            <ul class="dropdown">
                <li class=""><a class="scroll" href="#faq"><i class="fa fa-question-circle"></i>&nbsp;FAQ</a></li>
                <li class=""><a class="scroll" href="#team"><i class="fa fa-info-circle"></i>&nbsp;About Us</a></li>
                <li class=""><a class="scroll" href="#contus"><i class="fa fa-envelope"></i>&nbsp;Contact Us</a></li>
                <li class=""><a href="#pricing" class="scroll" onclick="Tawk_API.toggle();"><i class="fa fa-comments"></i>&nbsp;Chat with Us</a></li>
            </ul>
        </li>
    </ul>
</nav>


我尝试添加data-target="#”,但它不起作用。

eoxn13cs

eoxn13cs1#

如果你被老的Bootstrap卡住了,那么你可以修补bootstrap-dropdown.jsgetParent功能。
$parent = selector && $(selector)替换为:

if (selector && selector !== '#') {
  $parent = $(selector)
}

字符串

vx6bjr1n

vx6bjr1n2#

已通过以下步骤修复此问题:

  • 使用最新版本的jQuery v2.1.3和bootstrap v3.3.6
  • 在jquery之后按顺序加载Bootstrap JS
  • 使用data-target="#”和href="#”并将外部链接放在onClick()触发器上。

希望有帮助。

628mspwn

628mspwn3#

在我的情况下,我有一个脚本,自动切换滚动菜单项上的“活动”类,Bootstrap菜单下的“a”html标签的所有“href”必须不等于“#",这个解决方案适用于我的情况,如果有人有类似的情况。

u5rb5r59

u5rb5r594#

下面是我对bootstrap中getParent函数的解决方案

function getParent($this) {
        var selector = $this.attr('data-target')

        if (!selector) {
            selector = $this.attr('href')
            selector = selector && /#/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
        }

        //var $parent = selector && $(selector)
        var $parent = null;
        if (selector && selector !== '#') {
            $parent = $(selector)
        }

        return $parent && $parent.length ? $parent : $this.parent()
    }

字符串

mrphzbgm

mrphzbgm5#

当使用Bootstrap 2.0.4和jQuery 3+时,在dropdown.jsbootstrap.js中找到toggle函数定义,并找到以下行:

$parent = $(selector);

字符串
在之前的行上,输入:

selector = selector && selector !== "#" ? selector : null;

jvlzgdj9

jvlzgdj96#

请检查页面中添加的jQuery。大多数情况下,这种类型的错误是由于2个或更多的jQuery版本

相关问题