2014-03-03 97 views
0

HTML如何獲取data-id並將其傳遞給函數?

<a class="bookmarkit" href="#modalBookmark" data-toggle="modal" role="button" data-id="${image?.id}">Bookmark</a> 

$('#modalBookmark').on('shown', function(){ 

    getBookmarks(userId, $(this).data('id')); 


}); 

$('.btn-add-list').click(function(e){ 
    e.preventDefault(); 
    var bookmarkName = $('.des-bookmark-new input[name="list"]').val(); 
    console.log(bookmarkName); 
    var bookmark = { ownerId: userId, name: bookmarkName }; 
    addBookmark(bookmark); 

}); 

$('.des-bookmark-list-wrapper').on('click', '.des-bookmark-link', function(e) { 
    e.preventDefault(); 
    console.log('here - add bookmark group'); 
    addBookmarkItem($(this), $(this).data('id'), $(this).parent().attr('data-bookmark-id')); 
}); 

這將是動態的ID將被傳遞給jQuery的書籤功能得到書籤值,顯示計數選擇書籤組,等以後 的問題是,$(本)。數據( 'id')沒有定義。

任何幫助表示讚賞!

+0

你是什麼意思它不是定義 - 我看到了屬性在標籤中? –

+0

'$(this).parent()。attr('data-bookmark-id')'還沒有定義?如果沒有看到整個html,這些點擊功能的定位並不能真正幫助你實現遍歷。 – d3c0y

+1

$('#modalBookmark')這個doe不會在你的代碼中選擇一個標籤,它會選擇id =「modalBookmark」而非href =「#modalBookmark」的元素,即a標籤目標,它是否有數據標識在上面? – OJay

回答

0

當您打開modal中,這個功能目標modal格不是錨定opener鏈接

$('#modalBookmark').on('shown', function(){ 
    getBookmarks(userId, $(this).data('id')); 
}) 

你應該試試這種方式

<a class="bookmarkit" href="#modalBookmark" data-toggle="modal" role="button" data-id="${image?.id}">Bookmark</a> 

而且隨着shown事件中使用當前的錨點選擇

$('#modalBookmark').on('shown', function(){ 

    getBookmarks(userId, $(".bookmarkit").data('id')); 

}); 

click事件或

$(".bookmarkit").on('click', function(){ 
    getBookmarks(userId, $(this).data('id')); 
}) 

希望它會工作

+0

但它工作,即使我不添加選擇器ID。我遵循引導示例.. – kittymeows

+0

@kittymeows,bootstreap'modal'由於'data-toggle =「modal」''屬性可以正常工作,但是本節$('#modalBookmark')。on('shown'函數(){getBookmarks(userId,$(this).data('id'));})''將執行時,你會在'錨'標籤添加正確的選擇器 – Girish

+0

啊,我明白了。好吧,我試過你的例子,但它返回undefined。哼。 – kittymeows

0

嘗試使用 $(本).attr( '數據ID')

+0

Ya試試這個小貓,替換 'addBookmarkItem($(this),$(this).data('id'),$ (this).parent()。attr('data-bookmark-id'));' with'addBookmarkItem($(this),$(this).attr('data-id'),$(this)。 parent()。attr('data-bookmark-id'));' – d3c0y

相關問題