Jquery Click()不';行不通

Jquery Click()不';行不通,jquery,click,Jquery,Click,我有一个外部*.js文件,其中包含以下代码: $(".hlavni_tema").click(function() { alert("ok"); }); alert("loaded"); 和HTML页面,如下所示: <div id="tema"> <span id="hlavni_tema_1" class="hlavni_tema">Základní fyzikální pojmy a jednotky</span> <input type=

我有一个外部
*.js
文件,其中包含以下代码:

$(".hlavni_tema").click(function() {
  alert("ok");
});
alert("loaded");
和HTML页面,如下所示:

<div id="tema">
 <span id="hlavni_tema_1" class="hlavni_tema">Základní fyzikální pojmy a jednotky</span>
 <input type="checkbox" name="tema" id="tema_1a" value="'1a'">
 <label for="tema_1a">Základní fyzikální pojmy, měření ve fyzice</label>
 ...
 <span id="hlavni_tema_8" class="hlavni_tema">Astrofyzika</span>
 <input type="checkbox" name="tema" id="tema_8d" value="'8d'">
 <label for="tema_8d" class="posledni_label">Fyzikální obraz světa</label>
</div>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="/_jscripts/tema.js"></script>
$(function() {
    // your code
});

扎克拉德尼·费齐卡·莱尼·波杰米是杰德诺茨基人
扎克拉德尼·费齐卡莱尼·波杰米,měřeníve fyzice
...
阿斯特罗夫齐卡
费齐卡尼奥布拉兹·斯维塔
在HEAD部分中,我包括jQuery和外部文件源,如下所示:

<div id="tema">
 <span id="hlavni_tema_1" class="hlavni_tema">Základní fyzikální pojmy a jednotky</span>
 <input type="checkbox" name="tema" id="tema_1a" value="'1a'">
 <label for="tema_1a">Základní fyzikální pojmy, měření ve fyzice</label>
 ...
 <span id="hlavni_tema_8" class="hlavni_tema">Astrofyzika</span>
 <input type="checkbox" name="tema" id="tema_8d" value="'8d'">
 <label for="tema_8d" class="posledni_label">Fyzikální obraz světa</label>
</div>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="/_jscripts/tema.js"></script>
$(function() {
    // your code
});

当我打开网页时,
alert()
通知
已“加载”
,以便导入jQuery文件。但是当我点击span元素,它的类是“hlavni_tema”,什么都没有发生。我也尝试过使用以下代码:

.on(“单击”,function())

.on(“单击”,“tema”,function())

--都没有用


谢谢您的帮助。

将代码放入
$(文档).ready()


否则,您的代码将在元素添加到DOM之前运行,因此选择器与任何内容都不匹配。

设置事件时,DOM可能还没有准备好。将处理程序放在文档中准备就绪

$(function(){ 
   $(".hlavni_tema").click(function() {
     alert("ok");
   });
});

加载DOM后,必须分配事件处理程序

试试这个,应该有用

$(document).ready(function(){
    $(".hlavni_tema").click(function() {
        alert("ok");
    });
    alert("Document loaded");
});
alert("Script loaded");

我在Firefox、Google Chrome和Internet Explorer中检查了相同的代码。它在所有三种浏览器中都能工作,可能是您在Jquery文件之前添加了单击事件

请检查是否已将单击代码放入document.ready()函数中

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">/script>
<script src="/_jscripts/tema.js"></script>
<script type="text/javascript">
    $(document).ready(function () {
        $(".hlavni_tema").click(function () {
            alert("ok");
        });
        alert("loaded");
    });
</script>
/script>
$(文档).ready(函数(){
$(“.hlavni_tema”)。单击(函数(){
警报(“正常”);
});
警报(“已加载”);
});

关于jQuery需要了解的最重要的事情之一是,需要了解DOM何时被完全加载,以便执行jQuery脚本。一个好的建议是编码如下:

$(文档).ready(函数(){
//你的代码
});

或者,您可以在匿名函数中使用缩写形式,如下所示:

<div id="tema">
 <span id="hlavni_tema_1" class="hlavni_tema">Základní fyzikální pojmy a jednotky</span>
 <input type="checkbox" name="tema" id="tema_1a" value="'1a'">
 <label for="tema_1a">Základní fyzikální pojmy, měření ve fyzice</label>
 ...
 <span id="hlavni_tema_8" class="hlavni_tema">Astrofyzika</span>
 <input type="checkbox" name="tema" id="tema_8d" value="'8d'">
 <label for="tema_8d" class="posledni_label">Fyzikální obraz světa</label>
</div>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="/_jscripts/tema.js"></script>
$(function() {
    // your code
});
有关更多信息,请参阅

注意“.ready()”表示DOM已完全加载,而匿名函数是该事件的处理程序;看

此外,如果您没有在本地加载库,那么使用正确的jQuery源代码URL也很重要。要在StackOverflow运行代码,我必须使用

https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js
即使这样,我也能在网上找到同样的url,前面加了“http”

注:

ready事件在加载HTML文档后发生,而 当所有内容(如图像)都已加载时,onload事件会在稍后发生 已加载

看这个

由于您可能希望检查窗口是否也已完全加载,因此此脚本也包括该代码

$(文档).ready(函数(){
$('.hlavni_tema')。单击(函数(){
控制台日志(“ok”);
});
控制台日志(“加载的文档”);
});
$(窗口).on(“加载”,函数(){
控制台日志(“窗口加载”);
});
#tema{
背景:#eef;
}
hlavni_tema先生{
颜色:#00c;
}

扎克拉德尼·费齐卡·莱尼·波杰米是杰德诺茨基人
扎克拉德尼·费齐卡莱尼·波杰米,米恩·费齐斯。。。
阿斯特罗夫齐卡
费齐卡尼奥布拉兹·斯维塔