2013-07-06 14 views
1

jQuery中我可以這樣做:如何在Clojurescript中鏈接JQuery JayQ函數?

$("#p1").css("color","red").slideUp(2000).slideDown(2000); 

:它運行它們按順序,但是當我嘗試在Clojurescript JayQ如下:

(-> $("#p1") 
    (css "color" "red") 
    (slideUp 2000) 
    (slideDown 2000) 
) 

:那麼方法不跑一個之後。關於如何做到這一點的任何想法?

回答

3

的JayQ語法略有不同。這應該是更準確的:

(-> ($ "#p1") 
    (css {:color "red"}) 
    (slide-up 2000) 
    (slide-down 2000)) 
+0

謝謝,我錯過了額外的大括號! – Zubair

+0

我認爲有更多的句法差異。 :) –

9

我不能說對jayq,但如果你想直接與jQuery的互操作,你需要使用點語法互操作:

(-> (js/$ "#p1") 
    (.css "color" "red") 
    (.slideUp 2000) 
    (.slideDown 2000)) 
+0

怎麼樣(css {:color「red」}),它是否需要? – Zubair

+1

如果您將ClojureScript hashmap傳遞給jQuery,它將會混亂地爆炸。您可以很容易地在ClojureScript中創建一個普通的JavaScript對象,然後使用'(js-obj)'然後使用'aset'和'aget'來設置和獲取屬性(確保使用字符串而不是關鍵字的關鍵字)。 –

+0

好的,好點,謝謝 – Zubair