не может отсоединить мышь, оставляя при нажатии - PullRequest
0 голосов
/ 12 октября 2011

У меня есть скрипт jquery, где, если вы вводите указатель мыши и элемент, что-то отображается и исчезает при отпускании мыши Я пытаюсь отсоединить отпуск мышью, когда пользователь нажимает, чтобы «что-то» продолжало отображаться, когда пользователь уходит. Это правильный способ сделать это? Если так, может кто-нибудь помочь мне заставить этот скрипт работать?

Спасибо!

$('.block').live("mouseenter",function(){
        var id= $(this).attr('id');
        $('#arrowPreview'+id).show();


    }).live("mouseleave",function(){
        var id= $(this).attr('id');
        $('#arrowPreview'+id).hide();

    }).live("click",function(){
        var id= $(this).attr('id');
        $('#arrowPreview'+id).show();
        $(this).unbind("mouseleave");
    });

Спасибо!

Ответы [ 3 ]

2 голосов
/ 12 октября 2011

Вам необходимо создать функции для выполнения событий как переменных, чтобы обеспечить целостность вашего javascript, например, для вашего примера:

var fShow = function(){
    var id= $(this).attr('id');
    $('#arrowPreview'+id).show();
};

var fHide = function(){
    var id= $(this).attr('id');
    $('#arrowPreview'+id).hide();
};

var fClick = function(){        
    var id= $(this).attr('id');
    $('#arrowPreview'+id).show();
};

$('.block').bind('mouseenter',fShow);
$('.block').bind('mouseleave',fHide);
$('.block').unbind('mouseleave',fHide);
1 голос
/ 12 октября 2011

Так что я не думаю, что вы хотите, это вполне возможно. Проблема заключается в использовании .live и unbind. Вы можете отсоединить событие mouseleave с помощью .die. Однако используемый селектор должен совпадать с тем, который изначально использовался для привязки события, в вашем случае .block. Я думаю, что это явно плохо. Пример скрипки .die

http://jsfiddle.net/EZNDg/

Я думаю, что вместо этого вам нужно привязать, используя явный селектор для текущего элемента, поэтому, возможно, используйте .each с вашим селектором, а затем связывайте с $ (this). Это должно позволить умереть, чтобы работать. Я возьму эту скрипку и посмотрю, правда ли это.

0 голосов
/ 12 октября 2011

события, связанные с live, не связаны с die

...