在javascript中可以点击多个css类 [英] More than one css class clickable in javascript

查看:84
本文介绍了在javascript中可以点击多个css类的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我怎么能这样做甚至toggle_cart可以像clickerHeader
一样点击,但保留其悬停效果(见箭头)?



<请参阅 http://jsfiddle.net/realitylab/STE48/3

  $('。eventMenu> ul')。toggleClass('no-js js'); 
$('。eventMenu .js ul')。hide();
$(document).on(click,function(e){
var $ elem = $(e.target);
if($ elem.hasClass('clickerHeader') ){
$('。eventMenu .js ul')。not($ elem.next('ul'))。hide();
$ elem.next(ul)。slideToggle( );
}否则if(!$($ elem).parents('。contentHolderHeader')。length){
//} else {
$('。eventMenu .js ul' ).hide();
}
});


解决方案

对现有代码的最小更改是添加在点击功能的第一行之后跟随两行:

  if($ elem.hasClass('toggle_cart'))
$ elem = $ elem.next();

换句话说,如果点击带箭头的跨度,假装实际上点击了锚点元素。在上下文中:

  $(document).on(click,function(e){
var $ elem = $(e.target);
if($ elem.hasClass('toggle_cart'))
$ elem = $ elem.next();
if($ elem.hasClass(' clickerHeader')){
// etc.

演示: http://jsfiddle.net/STE48/6/


How can I do so that even "toggle_cart" is clickable in the same way as "clickerHeader" but retains its hover effect (see arrow)?

please see http://jsfiddle.net/realitylab/STE48/3

$('.eventMenu > ul').toggleClass('no-js js');
            $('.eventMenu .js ul').hide();
            $(document).on("click", function(e) {
                var $elem = $(e.target);
                if ($elem.hasClass('clickerHeader')) {
                    $('.eventMenu .js ul').not($elem.next('ul')).hide();
                    $elem.next("ul").slideToggle();
                } else if (!$($elem).parents('.contentHolderHeader').length) {
                    //} else {
                    $('.eventMenu .js ul').hide();
                }
            });

解决方案

A minimal change to your existing code is to add the following two lines after the first line of your click function:

if ($elem.hasClass('toggle_cart'))
     $elem = $elem.next();

In other words, if the span with the arrow is clicked, pretend that actually the anchor element was clicked. In context:

        $(document).on("click", function(e) {
            var $elem = $(e.target);
            if ($elem.hasClass('toggle_cart'))
                $elem = $elem.next();
            if ($elem.hasClass('clickerHeader')) {
            // etc.

Demo: http://jsfiddle.net/STE48/6/

这篇关于在javascript中可以点击多个css类的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆