2014-06-21 99 views
1
<div class='m1 about'>About</div> 
<div class='m1 contact'>Contact</div> 

<div class="sw about"></div> 
<div class='sw contact'></div> 

一類,我需要:
如果m1 about點擊 - sw contact選擇選擇哪些具有其他類

我嘗試

$(".m1").click(function(){ 
    var a = $(this).attr("class").split(' ')[1]; 
    $(".sw").hasClass(a).slideDown("slow"); 
}); 

隱而不宣 -
如果m1 contact點擊sw about選擇沒有工作。

+0

應該工作,除非點擊在創建DOM之前綁定。是$(「.m1」)。click()'在$(document).ready(function {})裏面嗎?並且是與頁面加載一起加載的div? –

+0

dirty way'$(「。sw。」+ a).slideDown(「slow」);'hasClass返回boolean – marathonman

+0

@marathonman,EXCELLENT!爲什麼髒方式?請把它作爲答案。 – bonaca

回答

1

的jsfiddle:

http://jsfiddle.net/Vm7aH/6/

試試這個:

$(document).ready(function() { 
    $(".m1").click(function() { 
     var a = $(this).attr("class").split(' ')[1]; 
     if ($(".sw").hasClass(a)) { 
      alert(".sw." + a); 
      $(".sw" + a).slideDown("slow"); 
     } 
    }); 
}); 
+0

在這種情況下,「sw contact」和「sw about」都被滑動。 – bonaca

+0

編輯答案 – imbondbaby

+0

刪除警報,如果它爲你工作:) – imbondbaby

1

改成這樣:

JS

$(".m1").click(function(){ 
    var a = $(this).attr("class").split(' ')[1]; 
    if($(".sw").hasClass(a)) 
     $(".sw").slideDown("slow"); 
}); 

jQuery的hasClass返回布爾。

hasClass

+0

在這種情況下'sw contact'和'sw about'滑動 – bonaca

+0

你只想要class'.sw'? –

1

而在HTML方面有一點不同,這裏是我會怎麼做:

http://jsfiddle.net/Lhfz7/3/

<div class='m1' data-target-class='about'>About</div> 
<div class='m1' data-target-class='contact'>Contact</div> 

<div class="sw about"></div> 
<div class='sw contact'></div> 

$(document).ready(function() { 

    $(".m1").click(function(){ 
     console.log("hi") 
     var targetClass = $(this).data("target-class") 
     var target = $("."+targetClass) 
     target.text("Selected") 
    }); 

    }); 
0

雖然你已經接受一個答案,我想我會提供一個替代方法:

// bind the click event-handler: 
$('.m1').click(function(){ 
    // create a string starting with '.', and then join the class-names (from 
    // the classList) together with '.', replacing the 'm1' class-name with 'sw': 
    $('.' + [].join.call(this.classList,'.').replace('m1','sw')) 
    // toggling the display of the found element(s) with a slide down/up: 
    .slideToggle(300); 
}); 

JS Fiddle demo

參考文獻: