2014-01-16 62 views
0

我需要這個jQuery代碼的一些幫助。下面的代碼工作正常,但我試圖使用$ .each,而不是工作。

$(document).ready(function(){ 

    $('#pull').click(function(event){ 
     event.stopPropagation(); 
     $('#pf').slideToggle(); 
    }); 
    $('#pullo').click(function(event){ 
     event.stopPropagation(); 
     $('#pt').slideToggle(); 
    }); 
     $('#pullc').click(function(event){ 
     event.stopPropagation(); 
     $('#pc').slideToggle(); 
    }); 

    $(document).click(function(){ 
     $('#pt').hide(); 
     $('#pf').hide(); 
     $('#pc').hide(); 
    }); 
}); 

下面的代碼是不適合我的工作,請大家幫忙

var pul = ["#pull":"#pt","#pullo":"#pf", "#pullc":"#pc"]; 

$(document).ready(function(){ 

    $.each(pul, function(i, v){ 
    $(i).click(function(event){ 
     event.stopPropagation(); 
     $(v).slideToggle(); 
    }); 
    $(document).click(function(){ 
     $(v).hide(); 

    }); 
    }); 


}); 
+0

看起來你的數組語法無效。你應該用大括號來表示對象(「關聯」數組)。 –

+2

你的'pul'數組應該是一個對象,這是無效的JavaScript。看來你想重構腳本。你可以發佈HTML嗎? – undefined

+0

它也看起來像你混淆了'#pt'和'#pf'。 – Mathletics

回答

0

試試這個,

var pul = {"#pull":"#pt","#pullo":"#pf", "#pullc":"#pc"}; 

$(document).ready(function(){ 

    $.each(pul, function(i, v){ 
    $(i).click(function(event){ 
     event.stopPropagation(); 
     $(v).slideToggle(); 
    }); 
    $(document).click(function(){ 
     $(v).hide(); 

    }); 
    }); 
}); 
+0

謝謝,它現在正在工作。語法錯誤應該使用{}而不是[] :) – smith09

1

讓您的收藏對象,而不是數組:

Here is Demo

var pul = {"#pull":"#pt","#pullo":"#pf", "#pullc":"#pc"}; 

$(document).ready(function(){ 

    $.each(pul, function(i, v){ 
    $(i).click(function(event){ 
     event.stopPropagation(); 
     $(v).slideToggle(); 
    }); 
    $(document).click(function(){ 
     $(v).hide();  
    }); 
    }); 
+0

'$(''+ i)'可以是'$(i)'。無需將其「轉換」爲字符串。 –

+0

@RocketHazmat更新謝謝:) –

0

你有兩種方法可以解決這個問題。要麼讓你的數組作爲二維數組:

var pul = [ 
    ["#pull", "#pt"], 
    ["#pullo", "#pf"], 
    ["#pullc", "#pc"]]; 

你可以做$(v[0]).click(...而不是$(i).click(...。而$(v[1]).hide();而不是$(v).hide();

或者,你可以將其轉換爲其他人一樣的對象建議:

var pul = {"#pull":"#pt","#pullo":"#pf", "#pullc":"#pc"}; 

現在,你有一個無效的對象和無效的數組。

+0

我將它轉換爲一個有效的對象,現在它的工作。謝謝 – smith09

相關問題