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

  • JamesAtiPhone

    JamesAtiPhon

    16 EYLÜL 2010
  • lifeisforsharingDT

    lifeisforsha

    18 Mayıs 2011
  • spederson7

    spederson7

    17 Temmuz 2006