显示特定选项卡上的触发事件

trigger event on specific tab displayed

我正在使用 bootstrap 3,特别是选项卡显示。

我想在显示特定选项卡时触发一个事件,所以我得到了一个代码

$('[href=#step3]').on('shown.bs.tab', function (e) {
    console.log("step3");
});

这对我来说看起来很好,但会产生以下错误:

Error: Syntax error, unrecognized expression: [href=#step3]

我觉得这很奇怪,因为我在这段代码中没有发现任何语法错误。该元素存在并定义如下:

<li role="presentation" class="disabled">
    <a href="#step3" data-toggle="tab" aria-controls="step3" role="tab" title="Anteprima" class="scheda">
        <span class="round-tab">
            <i class="glyphicon glyphicon-credit-card"></i>
        </span>
    </a>
</li>

试着给你一个 link step3 的 id 并且 运行 这样

$('#step3').on('click', function (e) {
  console.log("step3");
});

或者,你可以给你的 li 一个 id 并检查 class 是否被禁用,然后做你需要做的

$('#step3').on('click', function (e) {
  if($('#topstep3').hasClass('disabled')) {
    console.log('i am disabled')
  } else {
    console.log('something else here')
  }
});

我把 html 改成了这样

<li role="presentation" id="topstep3"class="disabled">
    <a href="#step3" id="step3" data-toggle="tab" aria-controls="step3" role="tab" title="Anteprima" class="scheda">
        <span class="round-tab">
            asdfasdf
        </span>
    </a>
</li>

原来只是我在没有注意的情况下复制的原始答案中的错字。

应该是:

$('[href="#step3"]').on('shown.bs.tab', function (e) {

而不是

$('[href=#step3]').on('shown.bs.tab', function (e) {

我遗漏了 href 值周围的双引号