【问题标题】:If/Else statement not working in JQuery (using Javascript inside Bootstrap)If/Else 语句在 JQuery 中不起作用(在 Bootstrap 中使用 Javascript)
【发布时间】:2015-09-17 18:29:16
【问题描述】:

我正在尝试根据 Bootstrap 3.1 中变量的值运行 if/else 语句。为什么这段代码不起作用?我已经尝试了它的许多变体,有和没有返回......但它不会根据窗口宽度返回正确的类。我已经刷新并检查了 windowwidth 的值是否高于和低于 750... 没有变化。我该如何在 Bootstrap.js 中解决这个问题?

var windowwidth = $(window).width();


if (!isActive) {
 if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {
   // if mobile we use a backdrop because click events don't delegate
 $('<div class="dropdown-backdrop"/>').insertAfter($(this)).on('click', clearMenus)
}


var relatedTarget = { relatedTarget: this }
$parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget))

if (e.isDefaultPrevented()) return

$parent
//Code starts here//

 if (windowwidth < 750) {
  return .toggleClass('open')
 }
 else {
  return .toggleClass('otherclass')
 }
//code ends here//
  .trigger('shown.bs.dropdown', relatedTarget)

$this.focus()
}

return false
}

【问题讨论】:

  • 请贴出你的真实代码,这不可能吧?

标签: javascript jquery twitter-bootstrap if-statement twitter-bootstrap-3


【解决方案1】:

将代码更改为此。你的尝试是错误的语法。

 var class = windowwidth < 750 ? 'open' : 'otherclass';
 $parent
     .toggleClass(class)
     .trigger('shown.bs.dropdown', relatedTarget)

【讨论】:

    【解决方案2】:

    请改用$parent.toggleClass((windowwidth &lt; 750)?'open':'otherclass'))

    问题有两个方面:从 if-else 返回会使您退出函数并且您不能 return .toggleClass 因为没有实例可供 . 用于查找属性(它缺少参数)。

    如果你不能使用三元运算符(整个(boolean)?run on true: run on false),可以考虑:

    if(windowwidth < 750)
        $parent.toggleClass('open');
    else
        $parent.toggleClass('otherclass');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-02
      • 2014-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多