2010-05-10 53 views
0

我有幾個輸入字段與類「鏈接」。他們都應該啓動jqueryUI對話框,所以這就是爲什麼我將該方法綁定到一個類而不是一個id。 現在的困難是,我不能在第12行使用(this),因爲這給了我對話的身份而不是輸入元素。獲取(this)在不同的功能

由於我是初學者,我不知道如何通過輸入字段的元素將變量傳遞給此事件。

我想要歸檔的是對話框應該從輸入字段開始,並將結果寫回輸入字段。


    1.  // this is the click event for the input-field class called "link" 
    2.  $('.link') 
    3.   .button() 
    4.   .click(function() { 
    5.    $('#dialog-form').dialog('open'); 
    6.   
    7.   }); 
    8.  
    9.  //this is an excerpt from the opened dialog box and the write back to the input field 
    10.  $("#dialog-form").dialog({ 
    11.      if (bValid) { 
    12.       $('.link').val('' + 
    14.        name.val() + ''); 
    15.       $(this).dialog('close'); 
    16.      } 
    17. }); 
 
+0

什麼是'name',它來自哪裏? – 2010-05-10 21:16:07

+0

我沒有發佈整個腳本,因爲它太大了。 'name'從對話框返回,應寫入輸入字段。當我使用#link作爲選擇器並且使用.link時,該腳本正在工作,但當然它會通過類「鏈接」回發到所有輸入字段。因此,我需要確定最初被點擊的輸入字段... – 2010-05-10 21:30:54

回答

0


$('.link').button().click(function() { 
    $(this).addClass("selected-link"); 
    $('#dialog-form').dialog('open'); 
}); 


$("#dialog-form").dialog({ 
    if (bValid) { 
     $('.link.selected-link').val('' + name.val() + ''); 
     $(this).dialog('close'); 
    } 
}); 
+0

哇,如果您瞭解一些技術,jQuery可以非常簡單。非常感謝,完美的作品。 針對其他具有相同問題的初學者的建議。刪除類,當您關閉程序 $(「。selected-link」)。removeClass(「selected-link」); – 2010-05-10 22:05:46

1
$('.link').button().click(function() { 
    $('#dialog-form').data('clicked', $(this)).dialog('open'); 
}); 

$('#dialog-form').dialog({ 
    if (bValid) { 
    $('#dialog-form').data('clicked').val(name.val()); 
    $(this).dialog('close'); 
    } 
}); 
+0

我也喜歡那種看起來非常優雅的解決方案。不知道那麼多路通往羅馬......謝謝! – 2010-05-10 23:05:00

0

$('.link').something(),結合事件東西與類 「聯繫」 每個DOM節點。你誤解了你所說的話。您仍然可以使用$(this),因爲它指向已激活的DOM節點,而不是事件關聯的類的集合。

+0

也許我不明白,但是這個: 12. $('。link')。val(''+ 不起作用。也許如果我在click函數中做.val的話? – 2010-05-10 22:55:38