2013-08-15 2 views
0

Я хочу изменить ширину данных attr зависит от (window) .width();attr change on resize не обновляется

вот пример Codepen example

кусок кода

if ((screen_wd >= 0) && (screen_wd <= 460)) { 
     $(".fb-like-box").attr({ 
      "data-width": "440px" 
     }); 

    } 
    else if((screen_wd > 460) && (screen_wd <= 720)){ 

     $(".fb-like-box").attr({ 
      "data-width": "700px" 
     }); 
    } 
    else{ 

     $(".fb-like-box").attr({ 
      "data-width": "980px" 
     }); 
    } 

Отдых в примере

Когда и будет изменять ширину окна на, например 400 и «F5» перезагрузить это работает, но это не изменится на изменение в реальном времени.

Спасибо за помощь :)

+1

Как вы доступа к этому атрибуту, чтобы знать это ISN Не работает? – cfs

+0

вы должны найти какое-то событие, которое будет срабатывать при изменении размера окна и привязать его к нему. Он не будет делать волшебство автоматически. – MightyPork

+0

он никогда не будет работать, потому что атрибут распознан FB, а не реальная ширина ... вы должны изменить его с помощью css, пока. –

ответ

0

Попробуйте

$(window).resize(function(){ 
    var screen_wd = $(window).width(); 
    if ((screen_wd >= 0) && (screen_wd <= 460)) { 
      $(".fb-like-box").attr({ 
       "data-width": "440px" 
      }); 

     } 
     else if((screen_wd > 460) && (screen_wd <= 720)){ 

      $(".fb-like-box").attr({ 
       "data-width": "700px" 
      }); 
     } 
     else{ 

      $(".fb-like-box").attr({ 
       "data-width": "980px" 
      }); 
     } 
}); 

Но это изменило бы только атрибут 'данных ширины'. Для того, чтобы изменить реальную ширину вам нужно использовать .width()

Попробуйте это:

$(".fb-like-box").width(440); 
+0

nope it does not work , THX в любом случае для идеи –

+0

выглядит так, как будто я получил то, что вы пытаетесь спросить, держись, я сделаю изменения – Alex

0

Обычно в атрибутах данных JQuery HTML доступны как это:

$(".fb-like-box").data("width", "700px");