Jquery .show () не работает с .find () в дескрипторе данных HTML5 - нужна помощь! - PullRequest
2 голосов
/ 12 июля 2011

См. Пример здесь: http://jsfiddle.net/mzhang23/CGfzq/9/

Я использую следующий код, чтобы попытаться разрешить щелчок по изображению с миниатюрой синей рубашки в крайнем правом столбце, чтобы показать делители изображения синей рубашки в первом и второмколонка.(Чтобы проверить это, нажмите «x» на синей рубашке в среднем столбце, чтобы сначала спрятать его)

Я использовал дескриптор типа данных HTML 5 для третьего столбца изображения синей рубашки инадеюсь использовать этот дескриптор, чтобы найти соответствующий класс для функции .show ().

    <script type="text/javascript">
        $(document).ready(function(){
        $('.thumbslist .element').click(function(){
        $('.outfit-box').find('.' + $(this).data('eltype')).show(250);
        });
        });    
    </script>

Есть идеи, почему это не работает?

Ответы [ 2 ]

1 голос
/ 12 июля 2011

Для jQuery 1.4.2 вам нужно получить атрибут data-eltype, см .: http://jsfiddle.net/CGfzq/10/

$(document).ready(function(){
    $('.thumbslist .element').click(function(){
        $('.outfit-box').find('.' + $(this).attr('data-eltype')).show(250);
    });
});

edit

As @muслишком кратко, метод, который вы попробовали, будет работать только в более поздних версиях.

1 голос
/ 12 июля 2011

EDIT:

Как указывал mu, более поздние версии jQuery действительно используют функцию .data () для извлечения атрибутов данных HTML5. Но мне повезло, и я не смог дать неправильный ответ из-за того, что вы используете старую версию jQuery, которая не поддерживает это ...: -)

Оригинал:

«data-eltype» - это имя атрибута, поэтому чтобы выбрать его с помощью jQuery, вам нужно сделать следующее:

$(this).attr('data-eltype');

Атрибуты данных HTML5 совершенно не связаны со встроенной функцией jQuery .data ().

Надеюсь, это поможет.

...