Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
单击a<;span>;运行JQuery javascript函数的标记_Javascript_Php_Jquery - Fatal编程技术网

单击a<;span>;运行JQuery javascript函数的标记

单击a<;span>;运行JQuery javascript函数的标记,javascript,php,jquery,Javascript,Php,Jquery,我使用PHP创建了一个span,如下所示 if ($subnetkey == 1 ) { echo ("<span class='subnetkey'>S/N of: $subnetnum</span>&nbsp;&nbsp;");} if($subnetkey==1){echo($subnetnum的序列号);} 它工作正常,并在屏幕上显示正确的数据。另外,如果我使用“Inspect Element”查看它,它的格式是正确的 <span cl

我使用PHP创建了一个span,如下所示

if ($subnetkey  == 1 ) { echo ("<span class='subnetkey'>S/N of: $subnetnum</span>&nbsp;&nbsp;");}
if($subnetkey==1){echo($subnetnum的序列号);}
它工作正常,并在屏幕上显示正确的数据。另外,如果我使用“Inspect Element”查看它,它的格式是正确的

<span class="subnetkey">S/N of: 780</span>
S/N of:780
我在页面顶部有这个脚本。我也在底部试过

<script>    
$(document).ready(function(){
    $(".subnetkey").click(function() {
        alert("subnet click mode");
    });
});
</script>

$(文档).ready(函数(){
$(“.subnetkey”)。单击(函数(){
警报(“子网点击模式”);
});
});
当我单击跨度时,什么也没有发生。我没有收到任何错误,当然我也没有看到警报


这似乎是动态构建页面和使用页面之间的时间问题。但如果不是这样,我该怎么做才能启动函数呢?

JQuery事件方法,如click()、dblclick()、mouseenter()等。仅适用于呈现DOM时已创建的元素。对于动态创建的元素,请使用具有以下语法的on()方法(请参阅):

因为它是一个动态创建的元素,所以您的代码无法工作。尝试:

$(document).on('click', '.subnetkey', function() {
    alert("subnet click mode");
});

jQuery在运行时只知道页面中的元素,因此jQuery无法识别添加到DOM中的新元素。为了解决这个问题,我们使用了从新添加的项到DOM中某个点的冒泡事件,当jQuery在页面加载上运行时,这个点就在DOM中。许多人使用
document
作为捕获冒泡事件的地方,但并不需要一直向上遍历DOM树。理想情况下

“动态构建页面”?你能详细说明一下吗?你是在做一个AJAX调用来拉入
span
元素吗?我在用AJAX从MySQL拉入数据是的。为什么要向下投票?你能解释一下出了什么问题吗?是这样的,我不确定我是否完全理解解决方案,但我会去查一下。同时,它确实起作用。DV很可能是因为链接副本中回答了这一问题。不应回答明显重复项,而应作为重复项关闭。同意@PatrickQ@iiirxs不能采取正确的行动不是采取错误行动的好理由。
$(document).on('click', '.subnetkey', function() {
    alert("subnet click mode");
});