Выполнение по клику и при загрузке
Всем привет. Помогите, пожалуйста, новичку.
Хочу сделать, чтобы два блока удалялись в зависимости от табов, при этом, что бы это происходило при экране >=720px. На данный момент сделал 2-х ступенчатые условия, где: Если нет клика по элементу, то выполняется функция, если клик есть, то выполняется такая же, скопированная функция. Что-то мне подсказывает, что есть другой способ, но ситаксис плохо знаю. <div id="event_tabs" style="display: block;"> <ul> <li class="active"><a href="kino" data-id="kino" class="btn"></a> </li><li class=""><a href="clubs" data-id="clubs" class="btn"></a> </li><li class=""><a href="theater" data-id="theater" class="btn"></a> </li><li class=""><a href="others" data-id="others" class="btn"></a></li> </ul> </div> <div id="bottom_afisha" class="clearfix"></div> <div id="yandex_ad_afisha_123"></div>
var direct = jQuery('.direct_container_afisha');
var bottom = jQuery('#bottom_afisha');
if (jQuery("#event_tabs li a").click) {
jQuery("#event_tabs li a").click(function() {
if (jQuery(window).width() >= 720 && jQuery('#event_tabs li.active a').data( "id" ) == "kino"){
direct.detach();
bottom.live();
}
else if (jQuery(window).width() >= 720 && jQuery('#event_tabs li.active a').data( "id" )=="others") {
direct.live();
bottom.detach();}
})}
else {
if (jQuery(window).width() >= 720 && jQuery('#event_tabs li.active a').data( "id" ) == "kino"){
direct.detach();
bottom.live();
}
else if (jQuery(window).width() >= 720 && jQuery('#event_tabs li.active a').data( "id" ) == "others") {
direct.live();
bottom.detach();}}
|
Nikita21,
Строки 6-12 вписать в отдельную функцию, к которой обращаться при загрузке и по клику (м.б. еще по ресайзу?) |
Цитата:
window.onload=function(){
var direct = jQuery('.direct_container_afisha')
var bottom = jQuery('#bottom_afisha')
if (jQuery(window).width() >= 720){
if (jQuery('#event_tabs .active a[data-id="kino"]').click) {
direct.detach();
bottom.live();}
else if (jQuery('#event_tabs .active a[data-id="clubs"]').click) {
direct.live();
bottom.detach();}
else if (jQuery('#event_tabs .active a[data-id="theater"]').click) {
direct.live();
bottom.detach();}
else if (jQuery('#event_tabs .active a[data-id="others"]').click) {
direct.live();
bottom.detach();}
}}
Может я неарвильно определяю data-id? |
Если честно не совсем понимаю чего вы пытаетесь сделать но ...
jQuery(function ( $ ) {
var direct = $('.direct_container_afisha'),
bottom = $('#bottom_afisha');
$('#event_tabs a').on('click', function ( e ) {
if ( window.innerWidth > 720 || !$( this.parentNode ).hasClass('active') ) {
return false;
}
switch( $(this).data('id').toLowerCase() ) {
case 'kino':
direct.detach();
bottom.click();
break;
case 'clubs':
case 'theater':
case 'others':
bottom.detach();
direct.click();
break;
}
return false;
});
});
|
Цитата:
<ul> <li class="active"><a href="kino" data-id="kino" class="btn"></a> </li><li class=""><a href="clubs" data-id="clubs" class="btn"></a> </li><li class=""><a href="theater" data-id="theater" class="btn"></a> </li><li class=""><a href="others" data-id="others" class="btn"></a></li> </ul> </div> Нужно, чтобы на табе "kino", который изначально активный. Удалялся блок <div id="yandex_ad_afisha_123"></div>, а на других табах появлялся, и при этом удалялся другой блок <div id="bottom_afisha" class="clearfix"></div>. И все это работало только при экране >720. Если делать вызов функции только по клику, то она не срабатывает изначально. Если делать без клика, то функция срабатывает единожды, при загрузке страницы. |
Цитата:
window.onload=function(){
var direct = jQuery('.direct_container_afisha')
var bottom = jQuery('#bottom_afisha')
if (jQuery(window).width() >= 720){
if (jQuery('#event_tabs .active a[data-id="kino"]').length > 0){direct.hide(); bottom.show();}
jQuery('#event_tabs li a[data-id="kino"]').click(function() { direct.hide(); bottom.show();});
jQuery('#event_tabs li a[data-id="clubs"]').click(function() { direct.show(); bottom.hide();});
jQuery('#event_tabs li a[data-id="theater"]').click(function() {direct.show(); bottom.hide();});
jQuery('#event_tabs li a[data-id="others"]').click(function() { direct.show(); bottom.hide();} );
}
}
|
| Часовой пояс GMT +3, время: 15:28. |