执行函数时添加的动态选择器
dynamic selectors added when a function is performed
我正在用一些类ID回显一些php行,并且需要能够将它们与jquery .click一起使用作为选择器。有没有办法做到这一点??该属性没有加载其他内容,它是稍后由 php 添加的。
玩.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>";}
您需要使用委托事件,因为您的元素是动态添加到 DOM 中的(或在创建事件处理程序之后)。
$(document).on('click', '.link', function(){
console.log("clicked");
});
在上面,事件被委派给文档,因此所有点击都将根据.link
选择器进行检查,即使目标是委托事件时不存在的元素。
为了
将事件绑定到动态元素(在第一次 DOM 加载后添加的元素),
取代:
$(".link").click( function(){
跟:
$(document).on('click', '.link', function(){
希望有帮助。
如果使用 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"属性指定常量值,因为它应该是唯一的。
相关文章:
- 在动态创建的元素上获取对特定选择器的引用
- 使用CSS或js,使用动态选择器选择任意li的下一个元素
- 如何动态创建许多Jquery颜色选择器(eyecon)
- 动态修改一个元素,使其与给定的选择器匹配
- 动态填充Bootstrap选择选择器:change event dos'不起作用
- 动态添加的标记不会'无法正确使用日期选择器
- jQuery选择器不识别任何动态创建的HTML输入函数
- 如何在jQuery的.on()方法中动态更新按钮的ID选择器
- 如何在创建动态 HTML 页面时使用日期选择器
- Jquery - 创建动态名称选择器
- 带过滤器的jQuery动态选择器
- 动态选择器,用于点击事件在 2 个事件后行为异常
- 执行函数时添加的动态选择器
- JQuery动态选择器事件处理程序
- 不能使jQuery动态选择器工作
- Lightbox未加载动态选择器
- Jquery动态选择器错误
- 试图将类添加到动态选择器
- 在php foreach中使用jquery动态选择器删除单个图像
- jQuery视频悬停优化动态选择器