2017-11-22 13 views
2

私はdivを持っています。この写真では、(カバーのような)写真をインポートできます。彼らは写真をアップロードしていないが、それは表紙画像を持っているが、写真をアップロードすると背景が白に変わる。 (それは私が仕事をしたい方法ですが、それは働いていない)内部のdivに応じてdivのスタイルを変更するにはどうすればいいですか?

この例では、働いている:

$(document).ready(function() { 
 
       if ('#bgbg:not(:empty)') { 
 
        $('#bgbg').css({ 'background-color':'#fff', 
 
         'background-image':'none !important' }); 
 

 
       } 
 
      });
.profile-photo-bg { 
 
    background-image:url("../images/cover-placeholder.jpg"); 
 
    background-size:cover; 
 

 
    height:245px; 
 
    overflow:hidden; 
 
}
<div class="profile-photo-bg no-padding col-lg-12 col-md-12 col-xs-12 col-sm-12"> 
 
        <div id="bgbg" class="profile-photo-bg2"> 
 

 
        <div ng-repeat="image in theUser.attributes.ImageGallery " class=" galleryImage2 " style="background:url({{image._url}}) 50% 50%/cover; "> 
 
         <i class='ion-close' ng-click='deleteFromGallery(image)'></i></div> 
 

 
        </div> 
 

 
       </div>

今、私は同じで作業されていない内aと異なるコードを持っていますjqueryのスクリプト:

<div id="bgbg3" class="profile-photo-bg no-padding col-lg-12 col-md-12 col-xs-12 col-sm-12"> 
 
        <a style="" class="fotki" ng-repeat="image in theUser.attributes.ImageGallery" href="{{image._url}}" data-lightbox="gallery"> 
 
         <div ng-if='$index < 5' class="galleryImage2 " style="background-image:url({{image._url}}); background-size: cover; "></div> 
 
        </a> 
 
       </div>

私はangularjs、jquery、ionicを使用します。

これを動作させるにはどうすればよいですか?

答えて

1

JavaScriptの構文に誤りがあります。 ifステートメントで$('#bgbg')のような要素を選択する必要があります。また、セレクタを使用する代わりに、div内にifステートメント内の子があるかどうかを確認する必要があります。あなたのdivにクラスを追加することも、jQueryで純粋なCSSを適用するよりも優れています。

はJavaScript:

$(document).ready(function() { 
    $('.bgbg').each(function() { 
     if ($(this).children().length == 0) { 
      $(this).addClass('no-children'); 
     } 
    }) 
}); 

CSS:

.bgbg { 
    background-image:url("http://www.gigcity.ca/wp-content/uploads/2017/06/Tool-feature.jpg"); 
    background-size:cover; 
    height:245px; 
    overflow:hidden; 
} 
.bgbg.no-children { 
    background-image: none !important; 
    background-color: white; 
} 

HTML:ここ

<div class="profile-photo-bg no-padding col-lg-12 col-md-12 col-xs-12 col-sm-12"> 
    <div class="profile-photo-bg2 bgbg"> 
    <div ng-repeat="image in theUser.attributes.ImageGallery " class=" galleryImage2 " style="background:url({{image._url}}) 50% 50%/cover; "> 
     <i class='ion-close' ng-click='deleteFromGallery(image)'></i> 
    </div> 
    </div> 
</div> 

<div class="profile-photo-bg no-padding col-lg-12 col-md-12 col-xs-12 col-sm-12"> 
    <div class="profile-photo-bg2 bgbg"> 
    </div> 
</div> 

は作業フィドルです:https://jsfiddle.net/108ws2c6/

+0

はこれだけを変更:背景色:RGB(255、 255,255)。 、私は私の背景イメージがないことが必要です。 –

+0

答えを編集して例を追加しました。見てみましょう。 –

+0

これで問題はありません。内部に問題があります div。 –

0
+0

その場合は、それを行う関数を作成し、新しいコンテンツがページに追加されるたびに(ajaxの成功など)、それを実行する必要があります。 –

+0

私はそう思っていますが、私は本当にアヤックスが上手ではないので、うまくいけば前にそれをやった人に頼んでください。 –

+0

あなたはAjaxコードを投稿できるので、見てみることはできますか? –

関連する問題