Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.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
Javascript 为什么不是';这不管用吗?它没有';我甚至都不叫onClick $(“a.filef”)。单击(函数(e){ 警报(“嗨,它工作了”); 返回false; });_Javascript_Jquery_Debugging - Fatal编程技术网

Javascript 为什么不是';这不管用吗?它没有';我甚至都不叫onClick $(“a.filef”)。单击(函数(e){ 警报(“嗨,它工作了”); 返回false; });

Javascript 为什么不是';这不管用吗?它没有';我甚至都不叫onClick $(“a.filef”)。单击(函数(e){ 警报(“嗨,它工作了”); 返回false; });,javascript,jquery,debugging,Javascript,Jquery,Debugging,您需要首先确保元素存在。请尝试以下方法: <script type="text/javascript"> $("a.filef").click(function(e){ alert('hi, it works'); return false; }); </script> <a class="filef" href="" rel="1">A</a> <a class="filef" href="" rel="2">V

您需要首先确保元素存在。请尝试以下方法:

<script type="text/javascript">
$("a.filef").click(function(e){
    alert('hi, it works');
    return false;
});

</script>


<a class="filef" href="" rel="1">A</a>
<a class="filef" href="" rel="2">V</a>
将代码放入:

$(function(){
  $("a.filef").click(function(e){
    e.preventDefault();
    alert("Hi, it works.");
  });
});
使其等待DOM加载完成后再运行。在您的情况下,它会等到链接存在后才尝试将逻辑绑定到它们

在某些情况下,需要在对象存在之前运行代码。许多支持ajax的网站就是这样。在这些情况下,jQuery具有类似外观的
$.live()
方法:

$(function(){
  /* here */
});

使用这种方法,元素是否已经存在,或者将来某个时候是否会出现,都无关紧要。除非您使用的是ajax或后期创建的元素,否则我建议您坚持使用第一种解决方案。

您需要确保元素首先存在。请尝试以下方法:

<script type="text/javascript">
$("a.filef").click(function(e){
    alert('hi, it works');
    return false;
});

</script>


<a class="filef" href="" rel="1">A</a>
<a class="filef" href="" rel="2">V</a>
将代码放入:

$(function(){
  $("a.filef").click(function(e){
    e.preventDefault();
    alert("Hi, it works.");
  });
});
使其等待DOM加载完成后再运行。在您的情况下,它会等到链接存在后才尝试将逻辑绑定到它们

在某些情况下,需要在对象存在之前运行代码。许多支持ajax的网站就是这样。在这些情况下,jQuery具有类似外观的
$.live()
方法:

$(function(){
  /* here */
});

使用这种方法,元素是否已经存在,或者将来某个时候是否会出现,都无关紧要。除非您使用的是ajax或后期创建的元素,否则我建议您坚持使用第一种解决方案。

您的代码同样适用于我,请查看:


将您的js代码放在页面底部,或者使用jquery的
ready
事件,该事件在DOM可用后触发。

您的代码对我有效,请检查:


将js代码放在页面底部,或者使用jquery的
ready
事件,该事件在DOM可用后触发。

将脚本包装在函数中,并将其作为参数传递给$(document)。ready(函数),或者您可以将其作为匿名函数内联编写

$(function(){
  $("a.filef").live("click", function(e){
    e.preventDefault();
    alert("Hi, it works.");
  });
});

$(文档).ready(函数(){
$(“a.filef”)。单击(函数(e){
警报(“嗨,它工作了”);
返回false;
});
});

将脚本包装到函数中,并将其作为参数传递给$(document).ready(函数),或者您可以将其作为匿名函数内联编写

$(function(){
  $("a.filef").live("click", function(e){
    e.preventDefault();
    alert("Hi, it works.");
  });
});

$(文档).ready(函数(){
$(“a.filef”)。单击(函数(e){
警报(“嗨,它工作了”);
返回false;
});
});

很抱歉,我没有使用jquery。把OP的功能放在
下面也行吗。。。无法让自己键入
$(文档)。准备好了吗?
:)+1以捕获问题并使用
e.preventDefault()
而不是
return false
@Doug:那些被诅咒的字符在我的代码中永远找不到位置:)对不起,我没有使用jquery。把OP的功能放在
下面也行吗。。。无法让您自己键入
$(文档)。准备好了吗?
:)+1以捕获问题并使用
e.preventDefault()
而不是
return false
@Doug:那些被诅咒的字符在我的代码中永远找不到位置:)这是因为JSBin在HTML的末尾添加了JS。DOM在该点完成。试试这个修订版,看看它是否会失败:这是因为你把script元素放在了anchor元素之后。这是因为jsbin把Javascript放在了元素之后。这是因为jsbin在HTML的末尾添加了JS。DOM在该点完成。尝试一下这个版本,看看它是否失败:这是因为您将script元素放在了anchor元素之后。它之所以有效,是因为jsbin将Javascript放在了元素之后。