2016-05-17 10 views
1

テーブルがあり、ページのサイズ変更時にattrをtrueに変更したいとします。 現在のコードが機能していません。画面上のattr値を変更する

<table data-toggle="table" 
     data-pagination="true" 
     data-search="true" 
     data-show-toggle="true" 
     data-show-columns="true" 
     data-card-view="false"> 
<thead> 

$(document).ready(function() { 
    $(window).resize(function() { 
    if ($(window).width() < 990) { 
     $('table').attr('data-card-view', 'true') 
    } else { 
     $('table').attr('data-card-view', 'false') 
    } 
    } 
)}) 
+3

「動作していません」という意味を含めてください。何が効いていないのですか?何が起こり、何が起こると思いますか?デベロッパーコンソールにエラーがありますか? – CherryDT

+0

attr valは更新されません@CherryDT – agDev

+1

OKですが、エラーに関する質問に対する回答は何ですか?あなたはコンソールをチェックしましたか? – CherryDT

答えて

1

私は、あなたのブラウザのデベロッパーツールで確認した、属性が正しく変更されていることを推測しますか?

属性が変更されたにもかかわらず、テーブルのカードビューがに更新されないという問題があります。

これは、HTML要素で特別なことが起こるカスタムの「魔法の属性」は、ページの読み込み時や明示的にブートストラップに尋ねるときにのみ解析されるからです。

は、実際には、カードビューと通常のビューを切り替えることが既に関数がある:.bootstrapTable('toggleView')

if(($(window).width() < 990) != $('table').bootstrapTable('getOptions').cardView) { 
    $('table').bootstrapTable('toggleView'); 
} 

説明:if((condition x) != (condition y))if((condition x && !condition y) || (!condition x && condition y))の短縮形です。私の例では、something < 990trueまたはfalseのいずれかと評価されるので、2番目の条件の周りに括弧を入れずに機能するので、ブール値のメンバーcardViewと直接比較できます。

documentationをチェックしてください。

+0

私が探していたもの。ありがとう兄貴! – agDev

-3

私はそれが構文エラーだと思います。これをチェックしてください :あなたは.resize().ready()機能を閉じないでください

$(document).ready(function() { 
    $(window).resize(function() { 
     if ($(window).width() < 990) { 
      $('table').attr('data-card-view', 'true'); 
     } else { 
      $('table').attr('data-card-view', 'false'); 
     } 
    }); 
}); 

はフィドルを追加します。ここではhttps://jsfiddle.net/1kon3dfk/1/

+0

また、構文エラーが何であるかを指摘してください。 – CherryDT

+0

セミコロンはOPのコードの前にあって何らかの理由で編集されていましたが、とにかくセミコロンの有無にかかわらずコードが動作するはずです。そして、彼はサイズ変更を終了し、適切に準備します。あなたのコードはもっと綺麗ですが、実行に違いはありません。 – zoubida13

+0

あなたは@CherryDTです。私は、エラーを与えると思う2つのエラーを追加しました。 –

0

はJavascriptを(バニラ)で可能な解決策です。他の 'onresize'イベントがないか、またはこれを上書きできるかどうかを確認してください。

var table = document.getElementsByTagName('table')[0]; 
window.onresize = function() { 
    if (window.innerWidth < 990) 
    table.setAttribute('data-card-view', 'true'); 
    else 
    table.setAttribute('data-card-view', 'false'); 
} 
+0

ちょうど頭が上がって、if/elseの両方で真をコピー/ペーストします。 – RayfenWindspear

+0

あなたは正しいです、ありがとうございます –

+0

私はバニラjsを使用していませんが、ありがとう – agDev

関連する問題