SORU
4 Mart 2013, PAZARTESİ


'arasında olay yayınımı iptal etmek için en iyi yol bu ne iç içe tıkla ng çağırır?

İşte size bir örnek. Hadi birçok site gibi görüntü bindirmesi var. Sen bir küçük resme tıkladığınızda, siyah kaplama, tüm pencere üzerinde görünür ve görüntünün daha büyük bir versiyonu içinde ortalanır. Siyah kaplama tıklayarak kapatılır; görüntü tıkladıktan sonraki görüntüyü gösteren bir işlevi çağırır.

Html:

<div ng-controller="OverlayCtrl" class="overlay" ng-click="hideOverlay()">
    <img src="http://some_src" ng-click="nextImage()"/>
</div>

Javascript:

function OverlayCtrl($scope) {
    $scope.hideOverlay = function() {
        // Some code to hdie the overlay
    }
    $scope.nextImage = function() {
        // Some code to find and display the next image
    }
}

Sorun resmin üzerine tıklayın eğer bu kurulum ile nextImage() hideOverlay() de denir. Ama benim istediğim sadece nextImage() denir.

Ve bu gibi nextImage() işlevi: olay yakalama iptal edebileceğini biliyorum

if (window.event) {
    window.event.stopPropagation();
}

...Ama eğer bana bu Pasajı ile kaplamayı içindeki unsurlar üzerinde tüm fonksiyonları önek gerekmez bunu yapmanın daha iyi AngularJS bir yolu varsa bilmek istiyorum.

CEVAP
4 Mart 2013, PAZARTESİ


$event.stopPropagation():

<div ng-controller="OverlayCtrl" class="overlay" ng-click="hideOverlay()">
    <img src="http://some_src" ng-click="nextImage(); $event.stopPropagation()" />
</div>

Burada bir demo: http://plnkr.co/edit/3Pp3NFbGxy30srl8OBmQ?p=preview

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Ammine Getahun

    Ammine Getah

    21 HAZİRAN 2011
  • 趣味そうこ♪

    趣味そう

    3 Mart 2010
  • Lamarr Wilson

    Lamarr Wilso

    27 Aralık 2008