我正在回复一些带有一些类ID的php行,并且需要能够将它们与jquery .click一起用作选择器。有没有办法做到这一点??该属性未加载everthing else,稍后将通过php添加。
play.js -
$(".link").click( function(){
/* var l = ""
$.post('input_commands/move_to.php',{l:l}, function(data) {
text=data;
elem = $("#placeholder");
//delay=100;
addTextByDelay(text,elem,delay);
}); */
alert("omg whyyyyy");
});
get_locations.php -
if($array_loc['loc_north']>0){echo "<a class='link' id='location_north'>Go north to ".$array_loc_north['loc_name']."</a> <br>";}
答案 0 :(得分:0)
为了将事件绑定到动态元素(在第一次DOM加载后添加的元素),
取代:
$(".link").click( function(){
使用:
$(document).on('click', '.link', function(){
希望有所帮助。
答案 1 :(得分:0)
您需要使用委托事件,因为您的元素会动态添加到DOM中(或者在创建事件处理程序之后)。
$(document).on('click', '.link', function(){
console.log("clicked");
});
在上文中,事件被委托给文档,因此将针对.link
选择器检查所有点击,即使目标是委派事件时不存在的元素。
答案 2 :(得分:0)
如果使用ajax动态添加它,您可能希望调用该选择器并在回调上附加.click()。
$.ajax({
url: '...',
success: function(response) {
// do stuff with response (assume that .link will be appended)
$(".link").click( function(){
//stuff when click link
}
}
});
否则,您可以输出带有onclick属性的链接并定义自定义函数:
if($array_loc['loc_north']>0){echo "<a class='link' id='location_north' onclick='customFunction(this)'>Go north to ".$array_loc_north['loc_name']."</a> <br>";}
并在JS中:
function customFunction(element) {
//do stuff here after the link was clicked
//element variable passed as parameter contains the link element clicked
}
PS:如果有多个元素,则无法为“id”属性指定常量值,因为它应该是唯一。