[英]Changing link href and triggering it with Javascript when its child (span) is clicked
[英]Changing a child span to a link which calls a function
我有一個AJAX函數,該函數將數據范圍內的div
填充到模板中。 我想將這些范圍附加到鏈接,單擊該鏈接時將調用一個函數。 有了我所擁有的功能,似乎確實添加了href鏈接,但是文本本身仍然不可單擊。
這是來自IDE以及IE中開發人員工具的html:
<div id="subtotal_menu">
</div>
var $menu = $('#subtotal_menu');
$menu.empty();
$('#checkTemplate').tmpl(data.d.Checks).appendTo($menu);
$("#subtotal_menu").find("span").attr('href','myfunction()');
還嘗試創建一個單獨的函數來對DOM元素進行操作:
function createVendorInvoiceLinks() {
var subTotalmenu = document.getElementById("#subtotal_menu").find("span");
var aTag = document.createElement('a');
aTag.setAttribute('href', "myfunction()");
subTotalmenu.appendChild(aTag);
}
這可以幫助您:
var $menu = $('#subtotal_menu');
$menu.find("span").append('<a href="javascript:void(0)">Link</a>');
// append an anchor to the span inside #subtotal_menu
// set javascript:void(0) as href to avoid unwanted behaviour on click
$('#subtotal_menu').on('click', 'a',function(){
alert('clicked');
// do whatever myfunction() does
});
//set up a proper event handler and use event-delegation to cope with
//dynamic added element from e.g. your mentioned ajax-request
當您希望整個范圍都可單擊時,只需將事件處理程序的綁定從a
更改為span
。 這樣,您就不必附加錨點了。
參考
而不是將<a>
元素附加到范圍,您應該執行相反的操作:
function createVendorInvoiceLinks() {
var subTotalmenu = document.getElementById("#subtotal_menu").find("span");
var aTag = document.createElement('a');
aTag.setAttribute('href', "myfunction()");
aTag.appendChild(subTotalmenu);
}
因此,您不會生成沒有內容的<a>
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.