2012-10-25 43 views
0

我有內部的單擊事件,我想根據已單擊的內容加載不同的div:jQuery的,如果點擊函數內部聲明

var open = $('.open'); 
open.click(function(evt) { 
    evt.preventDefault(); 
    overlay.fadeIn(400, function(){ 
     box.fadeIn(500); 
     // if something load box2 
     // if something load box3 
    }); 

http://jsfiddle.net/bLDXS/

公開賽是給予一類與box,box2和box3相關的鏈接。 如何加載box2的內容,我是否必須爲它們中的每一個使用特定的類?

+1

我不明白這個問題。你問如何寫一個'if'條件? –

+1

您需要發佈與您的發佈代碼相對應的html,以便我們可以幫助您 – Nelson

+0

我知道如何編寫一個,但在這種情況下如何特別加載box1或box2或box3? – Alex

回答

1

編輯: 看小提琴後,你就會有給每個可點擊的<p>一個id,並加載相應的框。

HTML:

<p class="terms open" id="box1_clicker">I agree to the <a href="">terms and conditions.</a></p> 

JS:

if($(this).attr("id")=="box1_clicker") { 
    // do something 
} 

Example fiddle


你可以指定每個箱子的ID,然後點擊內部檢查哪些盒子的鏈接被點擊,使用jquery's parent()

if($(this).parent().attr("id") == "box1") { 
    //some code 
} 
else if ($(this).parent().attr("id") == "box2") { 
    //some code 
} 
// so on 
+0

檢查更新 –

+1

身份證檢查爲我工作.......謝謝 – Alex

+0

不客氣。 –

1

Open是一個給與box,box2和box3相關的鏈接的類。我怎樣才能加載> box2的內容,我是否必須爲他們每個人使用特定的類?

沒有,你可以簡單地用if語句編寫代碼:

var open = $('.open'); 
open.click(function(evt) { 
    evt.preventDefault(); 
    overlay.fadeIn(400, function(){ 
    box.fadeIn(500); 
    if (cond1){ load box2 } 
    else if (cond2) {load box3 } 
}); 
+0

條件1是另一個點擊事件,說如果你點擊.box2(例如)做到這一點..... – Alex

+0

沒有條件不能另一個點擊事件。我認爲你的問題不夠清楚。從看起來你想區分哪個div/box生成的是平坦的,並基於這個條件你想要顯示一些UI操作。如果是這種情況,那麼你可以用$(「this」)。attr('id')檢查id是否使用jquery。 – Divick

1

試試這個:

var open = $('.open'); 
open.click(function(evt) { 
    evt.preventDefault(); 
    box= $(this).attr('rel');//get the rel of your clicked link. 
    overlay.fadeIn(400, function(){ 
     $('#'+box).fadeIn(500);//fadein the div your link relates to if it is your div's id. 

    });