Добавить клик назад к несвязанному событию - PullRequest
0 голосов
/ 22 июня 2011

Когда я запускаю следующий код, я хочу, чтобы только #overlay, #image + theNumber и #close были активными, поэтому я отключаю $ ('. Box'). Click, но как только нажата #close, я хочуповторно активируйте клик на $ ('. box'), но я пока не могу.Я проверил другие ответы и не смог собрать их.Спасибо за помощь !!



var handler = function() {

var theIDval = $(this).attr('id');
var theNumber = theIDval.replace('box','');

    $('.box').unbind('click');

    $('#overlay').show();
    $('#image' + theNumber).fadeIn();
    $('#close').fadeIn();

    $('#close').click( function () {
        $('#overlay').fadeOut();
        $('#image' + theNumber).fadeOut();
        $('#close').fadeOut();

        });
    };

$(document).ready( function() {
    $('.box').click(handler);
});

Ответы [ 2 ]

2 голосов
/ 22 июня 2011

похоже, что все, что вам не хватает - это повторное связывание события клика .box в функции #close обработчика кликов

$('#close').click(function() {
    $('#overlay').fadeOut();
    $('#image' + theNumber).fadeOut();
    $('#close').fadeOut();
    $('.box').click(handler);
});

http://jsfiddle.net/pxfunc/gUP68/

1 голос
/ 22 июня 2011

На вашем месте я бы сделал это так:

var handler = function() {
    var $box = $('.box');
    if($box.hasClass('disabled')){
       // do nothing, just disallow further spawns
   } else{
        $box.addClass('disabled');
        var theIDval = $(this).attr('id');
        var theNumber = theIDval.replace('box','');

        // no need to unbind, remove this
        // $('.box').unbind('click');

        $('#overlay').show();
        $('#image' + theNumber).fadeIn();
        $('#close').fadeIn();

        $('#close').click( function () {
            $('#overlay').fadeOut();
            $('#image' + theNumber).fadeOut();
            $('#close').fadeOut();
            $box.removeClass('disabled'); // re-enable click
        });
   }
};

$(document).ready( function() {
    $('.box').click(handler);
});
...