2010-11-03 64 views
3

我是jQuery的新手,但我希望有人能夠幫助我。我已經搜索了這個論壇(和其他人),但一直未能找到我可以開展工作的答案。發送變量到JQuery函數

我有這樣一個鏈接:

<a href="#"> 

和jQuery腳本:

$("div.show_dialogbox").click(function(){ 
    $("div#dialogboxwraper").animate({ 
     height: "400px" 
    }, "slow") 
    .animate({ 
     height: "200px" 
    }, "slow"); 
}); 

我希望能夠發送一個變量的聯繫,並用它在腳本這樣的高度:

<a href="#" OnClick="variable(200)"> 


$("div.show_dialogbox").click(function(variable){ 
    $("div#dialogboxwraper").animate({ 
     height: variable+200+"px" 
    }, "slow") 
    .animate({ 
     height: variable+"px" 
    }, "slow"); 
}); 
+0

請更正您的語法。 – 2010-11-03 19:01:38

+0

Soory ...我的誦讀困難和英語不是我的母語 – 2010-11-03 19:46:40

回答

2

不確定發送變量的明確性,但您可以設置錨是「200像素」,然後你的函數裏面做這樣的事情

var h = $(this).attr('title'); 
+0

謝謝..可能是有用的...但我會優先使用標題作爲鏈接的標題 – 2010-11-03 19:37:50

7

我會使用數據屬性在這裏,爲此,在jQuery的1.4.3中加入更多的支持,這樣的:

<a href="#" class="show_dialogbox" data-height="200"> 

然後在jQuery的:

$("a.show_dialogbox").click(function(){ 
    $("#dialogboxwraper").animate({ 
    height: $(this).data('height') + 200 
    }, "slow") 
    .animate({ 
    height: $(this).data('height') 
    }, "slow"); 
}); 

You can test it out here

+0

這看起來不錯,容易....但我沒有驗證w3c :-( – 2010-11-03 19:36:02

+0

@Jesper - 它在HTML5中有效,同時也不會導致HTML4出現問題。 – 2010-11-03 19:40:22

+0

呃...網站是使用XHTML(嚴格):(...並且必須驗證 – 2010-11-03 19:44:29

0

你也可以使用一個插件來動畫到某個類,這樣你可以將你的網站的顯示部分與你網站的數據部分分開。您將爲「打開」狀態創建一個CSS類,爲另一個「關閉」狀態創建一個CSS類,然後使用以下插件之一在它們之間進行動畫製作。

http://plugins.jquery.com/project/animate-to-class

的jQuery UI,還擴展了動畫類,所以你可以這樣做:

http://jqueryui.com/demos/switchClass/

這裏有一個演示,這用了jQuery UI:

http://jsbin.com/ijewu3

編輯鏈接:

http://jsbin.com/ijewu3/edit

+0

我不舒服,我明白你的意思...我想使用多個內容的腳本...當打開時,這個框會加載它的內容...所以我對同一個盒子有多個高度 – 2010-11-03 19:41:04

+0

你會爲每種類型的內容創建一個類,然後取決於在用戶加載的內容類型上,您可以切換類以正確顯示該內容。我會盡量給你一點例子。 – Sandro 2010-11-03 20:28:24

+0

Tahnk你......我很期待看到那個 – 2010-11-03 20:56:44

1

做得比功能好;

<a href="#" OnClick="shoot(200)"> 

///

function shoot (number) { 

    $("div#dialogboxwraper").animate({ 
     height: number+200+"px" 
    }, "slow") 
    .animate({ 
     height: number+"px" 
    }, "slow"); 


} 

注意:您將必須在每一個流程,要做到這

+0

我沒有看到這個,寫了基本相同的代碼,不得不刪除。我認爲這是最好的主意。 :) – 2010-11-03 20:55:09

0

最簡單的方式將移動實際啓動動畫的代碼添加onclick="shoot(200);"到一個單獨的功能,像這樣:

function doSomeAwesomeAnimation(variable){ 
    $("div#dialogboxwraper").animate({ 
     height: variable+200+"px" 
    }, "slow") 
    .animate({ 
     height: variable+"px" 
    }, "slow"); 
} 

那麼你會wireup點擊事件你的鏈接像這樣的:

$("div.show_dialogbox").bind("click", doSomeAwesomeAnimation(200)); 

編輯:一個快速點你,你正在使用,以wireup點擊事件選擇的目標是一個div類show_dialogbox不是可能包含鏈接的HTML元素。只是想確保你知道這一點。

+0

是的謝謝..我已經移動了該選擇器:-) ...並感謝輸入 – 2010-11-04 00:03:03

0

html標籤可以有rev =「」和rel =「」可以解析的字符串。你也可以看看這樣的東西:`...

這將設置一個標籤參數,然後繼續點擊後應該發生的任何事情。

0

謝謝大家的幫助和輸入/ ideers :-)

我結束了使用vertazzar答案,因爲我發現它是一個suting我需要最好的(和beeing容易

這就是我結束了

鏈接:

<a href="#" OnClick="showdialogbox(350,'test1');" class="show_dialogbox">Dialog test 1</a><br /><a href="#" OnClick="showdialogbox(200,'test2');" class="show_dialogbox">Dialog test 2</a> 

和功能

// SHOW DIALOG BOX 
function showdialogbox (boxh, boxc) { 
    if ($("div#dialogboxwrap").css("height") === "0px") { 
      $("#dialogboxcontent").load("test1.html #"+boxc); 
    } 
    else { 
     $("div#dialogboxwrap").animate({ 
      height: "0px" 
      }, "slow",function(){ 
      $("#dialogboxcontent").load("test1.html #"+boxc); 
     }); 
    } 
    $('div#dialogboxcontent').css('height', boxh-80+"px"); 
    $("div#dialogboxwrap").animate({ 
     height: boxh+100+"px" 
    }, "slow") 
    .animate({ 
     height: boxh+"px" 
    }, "slow"); 
} 
// CLOSE DIALOG BOX 
$(document).ready(function() { 
    $("div#close_dialogbox").click(function(){ 
     $("div#dialogboxwrap").animate({ 
      height: "0px" 
     }, "slow"); 
    }); 

結果可以蜜蜂在這裏看到(註釋velkome)http://www.gynther-klanen.dk/hr/

現在如何關閉這個問題,我可以在這裏somhow信用嗎???