2013-03-15 52 views
1

好了,所以我有多個名稱相同的對象:如何用同一類的多個對象指定location.href?

<a href="<?php echo Utils::createLink('delete-ms'); ?>&tid=<?php echo $tid; ?>" 
class="delete-ms"> 

<img src="img/status/CANCELED.png" alt="" title="Delete milestone." 
class="icon" style="width:18px; height: 18px; margin:0;"/> 

</a> 

下面是該對象的引用:

<div id="delete-ms-dialog" title="Delete this milestone?"> 
<p><span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 20px 0;"> 
</span>This milestone will be deleted. Are you sure?</p> 
</div> 

而這裏的JS用來調用鏈接:

function initDeleteMSDialog() { 
var deleteDialog = $('#delete-ms-dialog'); 
var deleteLink = $('.delete-ms'); 
deleteDialog.dialog({ 
    autoOpen: false, 
    modal: true, 
    width: 476, 
    buttons: { 
     'OK': function() { 
      $(this).dialog('close'); 
      location.href = deleteLink.attr('href'); 
     }, 
     'Cancel': function() { 
      $(this).dialog('close'); 
     } 
    } 
}); 
deleteLink.click(function() { 
    deleteDialog.dialog('open'); 
    return false; 
}); 

}

現在我的問題是,多個對象聲明爲無線同班同學當JS函數被調用時,它使用該類作爲鏈接的源。我如何獲得它,以便location.href引用我單擊以首先啓動對話框的鏈接?

回答

0

你可以嘗試聲明一個全局值可以在你的功能之外進行翻譯。

var $lastClicked; 

並且在deleteLink.click被觸發時設置變量。

deleteLink.click(function() { 
    $lastClicked = $(this); 
    deleteDialog.dialog('open'); 
    return false; 
}); 

這將允許您訪問deleteDialog函數中的變量。

'OK': function() { 
     $(this).dialog('close'); 
     location.href = $lastClicked.attr('href'); 
    } 
+0

工作就像一個魅力!謝謝! – dr3wmurphy 2013-03-15 06:03:52

0

你將不得不遍歷所有具有相同類的元素,如

$(".delete-ms").each(function(){ 
console.log($(this).attr('href')); 
}); 

http://jsfiddle.net/hZezC/3/

編輯

單擊事件,您可以訪問目標錨的href ATTR像

$(".delete-ms").click(function(e){ 
console.log($(this).attr('href')); 
}); 
+0

我只想要location.href來指定點擊鏈接的位置。當存在多個相同類別的鏈接時,顯然存在歧義,其中'href'屬性被分配。這會實現嗎? – dr3wmurphy 2013-03-15 05:56:26

+0

查看答案編輯 – dakait 2013-03-15 05:59:25

相關問題