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

  • habpsu

    habpsu

    25 Temmuz 2007
  • Palmundo Ec

    Palmundo Ec

    11 HAZİRAN 2009
  • REK Roth Productions

    REK Roth Pro

    8 Ocak 2011