2010-01-22 54 views
6

我是一個非常新的jQuery,並且無法調用一個以上的函數實例。jquery - 我如何用不同的元素id標籤調用相同的函數?

我有一個函數

$('#open_dialog').click(function(){ 
    $("#dialog").dialog("open"); 
     return false;  
}); 

調用這個函數我有OPEN_DIALOG的ID標籤名稱的HREF鏈接。顯然,如果它是引用該函數的頁面上的唯一鏈接(一對一關係),它將很有效。但是,我想(多對一的關係)。

我有一個包含25條記錄的表格,我要求每條記錄都有一個鏈接,它將調用open_dialog函數我知道所有ID都不能稱爲open_dialog,因爲它們必須是唯一的,因此如何訪問該函數在傳遞我的25條記錄中的一條的值時實例化該函數。順便說一下,我的記錄是動態的,因此$('#open_dialog,open_dialog2,open_dialog3,...')是不實際的。

謝謝你看我的帖子

回答

11

,而不是使用唯一的ID,你可以使用你的項目一類,那麼只需使用

$('.classname').click(function() 
{ 
    // 'this' would reference the anchor that was clicked 
    $("#dialog").dialog("open"); 
     return false;  
}); 

也可以在另一屬性添加到錨,即

<a href="#" class="classname" record="14">Record 14</a> 

那麼你的函數裏面,你可以有

var record = $(this).attr("record"); 

record現在將包含14

+0

+1 - 即將提交相同的答案。 – Buggabill 2010-01-22 14:23:05

+0

Thaks約翰這是一個很大的幫助唯一的另一件事是我如何傳遞一個參數的功能,例如,如果recordnumber 14被點擊我需要open_dialog函數知道它是通過記錄14初始化,沒有其他 – Bazza 2010-01-22 14:27:36

+1

我的建議是爲此使用元素ID。如果您正在動態構建頁面,則每個元素在創建時都可以分配一個唯一的ID。然後,您可以使用$(this).attr(「id」)來引用被單擊的元素的ID。 – Buggabill 2010-01-22 14:34:08

0

你可以使用的代替ID

$('.open_dialog').click(function(){ 
    $('#dialog').dialog("open"); 
    return false; 
}); 
+0

所有具有「open_dialog」類的元素將打開一個對話框。 – Reigel 2010-01-22 14:24:00

+0

不起作用 - $(this)將引用被點擊的鏈接,這不是他想要打開的對話框。您必須在包含對話框內容的ID上調用.dialog,在他的情況下是'#dialog'。 – Parrots 2010-01-22 14:24:47

0

你將我們的一類,而不是選擇一個id選擇。

應用同一類每個鏈接的......可以說,「openDialog」

<a class='openDialog' href='your link here'>Your text here</a> 

在jQuery中,你會改變你要這個......

$('.openDialog').click(function(){ 
    $("#dialog").dialog("open"); 
    return false;  
}); 

儘管我對「#dialog」id引用的內容感到困惑。你沒有真正解釋上面的情況......或者至少我沒有得到它,如果你這樣做。

如果記錄集中有任何值需要傳遞給onclick函數,則可以將每個錨標記的id(假設這些值是唯一的)設置爲需要傳遞的值,然後引用它們像這樣的代碼中...(我已經存儲在rec_no下面命名變量鏈接的ID ...

$('.openDialog').click(function(){ 
    var rec_no = $(this).attr("id"); 

    $("#dialog").dialog("open"); 
    return false;  
}); 
0

忘記這一切class廢話每個人都在談論,只如果你絕對必須使用(爲什麼如果沒有必要的話,爲標記添加膨脹?)。既然你說你的鏈接在一個表中,你可以像這樣得到表中的所有鏈接......

$("table a").click(function() { ... }); 

或者,如果你的餐桌上有一個ID ......

$("#tableId a").click(function() { ... }); 

獲取點擊事件中的記錄ID是一件容易的事。取決於它是在列,這將提醒表中的第一列(click事件內)的價值...

var id = $(this).parent().siblings("td:eq(0)").text(); 
alert(id); 
0

我假設dialog功能需要知道哪個記錄你」再指。您需要在HTML中輸出某種類型的記錄。例如。

<a class="open_dialog" id="record1"></a> 

然後修改dialog函數接受該記錄的ID作爲參數,並把它傳遞的是這樣的:

$('.open_dialog').click(function(){ 
    $("#dialog").dialog("open", $(this).id); 
    return false; 
}); 

是你的職責dialog一個,或者說內置在jQuery的?

相關問題