获得对刚刚附加到DOM的jquery元素的访问权限
我只是附加在DOM上的元素,如:
$("#div_element").append('<a href="#">test</a>');
我追加它后,我需要访问我刚刚做的为了绑定一个点击function的元素,我试过:
$("#div_element").append('<a href="#">test</a>').click(function(){alert("test")});
但上述不起作用。 我可以唯一地识别元素,但这似乎有点多less工作,也许有一种方法,我可以在我追加它后的权利。
你可以这样做:
var el = $('<a href="#">test</a>'); $("#div_element").append(el); el.click(function(){alert("test")}); // or preferrably: el.on('click', function(){alert("test")});
append函数接受两种types的参数:一个string或一个jQuery元素。 在传入string的情况下,它将在内部创build一个jQuery元素并将其附加到父元素。
在这种情况下,你想自己访问jQuery元素,所以你可以附加事件处理程序。 所以,不要传入string,并让jQuery创build一个元素,您必须先创build该元素,然后将其传递给append函数。
完成之后,仍然可以访问jQuery元素以便能够附加处理程序。
var $a = $('<a />', {href:"#"}) .text("test") .on('click', function(e) { alert('Hello') }) .appendTo('#div_element');
为该element
添加标识,然后按如下所示使用它
$("#div_element").append('<a id="tester" href="#">test</a>'); $('#tester').on('click', function(event) { console.log('tester clicked'); });
为什么不在添加之前保存对新元素的引用:
var newElement = $('<a href="#">test</a>'); $("#div_element").append(newElement); newElement.click(function(){alert("test")});
最后一个元素将是新元素
$('a:last','#div_element').on('click',function(){ // do something });
您可以在创build时将事件附加到元素 –
var ele =$("<a href='#'>Link</a>"); ele.on("click",function(){ alert("clicked"); }); $("#div_element").append(ele);
只需将点击处理程序附加到锚点之后再添加它。
$("#div_element").append($('<a href="#">test</a>').click(function(){alert("test")}));