2017-04-25 5 views
0

ビューをグリッドからリストに変更する方法と、変更中のページが選択したビューのままであることを知りたいと思います。グリッドモードをリストモードに変更する

写真の例を参考にしてください。

助けてくれてありがとう。

私のスクリプト:

$('button').on('click', function(e) { 
 
    $('#list').click(function(e) { 
 
    e.preventDefault(); 
 
    $('#container div').addClass('list'); 
 
    }); 
 
    $('#grid').click(function(e) { 
 
    e.preventDefault(); 
 
    $('#container div').removeClass('list'); 
 
    $('#container div').addClass('grid'); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="buttons" style=" padding: 10px;"> 
 
    <button id="grid" class="grid">Grid View</button> 
 
    <button id="list" class="list">List View</button> 
 
</div>

+1

他のイベントハンドラ内でイベントハンドラをバインドしないでください – empiric

+0

こんにちは、どうもありがとうございました。私はこれで初めてです、あなたは私を導くことができますか?そうであるように? –

+0

ボタンのhtmlはどのように見えますか?おそらく 'button'の最初のイベントハンドラを省略することができます。リストまたはグリッドモードの状態を保存するには、[localStorage](https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage)をご覧ください – empiric

答えて

0

あなたはあなたのケースで最初のイベント・ハンドラを省略することができます。 ready -handlerですべてをラップすることをお勧めします。あなたは、レイアウトの状態を保存し、ページの読み込みにそれをチェックするためのlocalStorage /のsessionStorageを使用することができます。

$(document).ready(function(){ 
var mode = localStorage.getItem('mode'); 

if(mode){ 
    $('#container div').addClass(mode === 'grid' ? 'grid' : 'list'); 
} 

$('#list').click(function(e) { 
    e.preventDefault(); 
    $('#container div').removeClass('grid'); 
    $('#container div').addClass('list'); 
    localStorage.setItem('mode', 'list'); 
}); 
$('#grid').click(function(e) { 
    e.preventDefault(); 
    $('#container div').removeClass('list'); 
    $('#container div').addClass('grid'); 
    localStorage.setItem('mode', 'grid'); 
}); 
}); 

Example


参考文献:

document-ready

localStorage

ternary operator

+0

私の友人のおかげで分かりにくいですが、ちょっと、私はこれを使って作業します、それは非常に役に立ちます、あなたの答え –

+0

@AlvaroMejiaは喜んで答えます。 。 – empiric

関連する問題