SORU
31 Mart 2010, ÇARŞAMBA


jQuery UI - Dış Tıklandığında İletişim kutusunu Kapatın

Belirli öğeler tıklandığında görüntülenen jQuery UI bir İletişim var. Eğer bir tıklama öğeleri veya iletişim kendini tetikleyen başka yerde olursa her yerde iletişim kutusunu kapatmak istiyorum.

İşte iletişim kutusunu açmak için: kod

$(document).ready(function() {
    var $field_hint = $('<div></div>')
        .dialog({
            autoOpen: false,
            minHeight: 50,
            resizable: false,
            width: 375
        });

    $('.hint').click(function() {
        var $hint = $(this);
        $field_hint.html($hint.html());
        $field_hint.dialog('option', 'position', [162, $hint.offset().top   25]);
        $field_hint.dialog('option', 'title', $hint.siblings('label').html());
        $field_hint.dialog('open');
    });
    /*$(document).click(function() {
        $field_hint.dialog('close');
    });*/
});

Eğer son bölümü ben Yorumsuz, iletişim asla açar. İletişim tekrar kapanıyor açılıyor aynı tıklayın çünkü sanıyorum.


Son Çalışma Kodu
Not: Bu jQuery outside events eklenti kullanıyor

$(document).ready(function() {
    // dialog element to .hint
    var $field_hint = $('<div></div>')
            .dialog({
                autoOpen: false,
                minHeight: 0,
                resizable: false,
                width: 376
            })
            .bind('clickoutside', function(e) {
                $target = $(e.target);
                if (!$target.filter('.hint').length
                        && !$target.filter('.hintclickicon').length) {
                    $field_hint.dialog('close');
                }
            });

    // attach dialog element to .hint elements
    $('.hint').click(function() {
        var $hint = $(this);
        $field_hint.html('<div style="max-height: 300px;">'   $hint.html()   '</div>');
        $field_hint.dialog('option', 'position', [$hint.offset().left - 384, $hint.offset().top   24 - $(document).scrollTop()]);
        $field_hint.dialog('option', 'title', $hint.siblings('label').html());
        $field_hint.dialog('open');
    });

    // trigger .hint dialog with an anchor tag referencing the form element
    $('.hintclickicon').click(function(e) {
        e.preventDefault();
        $($(this).get(0).hash   ' .hint').trigger('click');
    });
});

CEVAP
1 Aralık 2010, ÇARŞAMBA


Üzgünüm bu kadar uzun süre sonra yukarı sürükleyin ama aşağıda kullandım. Herhangi bir dezavantajları? Bakın açık fonksiyonu...

$("#popup").dialog({

        height: 670,
        width: 680,
        modal: true,
        autoOpen: false,
        close: function(event, ui) { $('#wrap').show(); },
        open: function(event, ui) { $('.ui-widget-overlay').bind('click', function(){ $("#popup").dialog('close'); }); }

    });

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • geraldnonadoez

    geraldnonado

    3 Temmuz 2013
  • girleffect

    girleffect

    20 Mayıs 2008
  • MuscleProdigyTV

    MuscleProdig

    8 Ocak 2011