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

  • FOSDEM

    FOSDEM

    13 Ocak 2009
  • thewinekone

    thewinekone

    17 Aralık 2005
  • vgeller1

    vgeller1

    22 Kasım 2009