为什么我的 jQuery 点击处理程序没有触发?

Why is my jQuery click handler not firing?

我的 Sharepoint 2010 Web 部件项目的 *WebPartUserControl.ascx 文件中有这个 HTML:

<html>
  <h1>Pre- and Post Travel Form Help</h1>
  <div id="preTravel" name="preTravel">
    <h2>Pre Travel</h2>
    <img id="imgPreTravel" name="imgPreTravel" src="/_layouts/images/TravelFormHelp/posttravelpdf.png" alt="pre Travel image" height="275" width="350">
  </div>
  <div id="postTravel" name="postTravel">
    <h2>Post Travel</h2>
    <img id="imgPostTravel" name="imgPostTravel" src="/_layouts/images/TravelFormHelp/posttravelpdf.png" alt="post Travel image" height="275" width="350">
  </div>
</html>

...还有这个 jQuery:

<script type="text/javascript">
    $('imgPostTravel').click(function () {
        alert('you clicked the post Travel image');
        this.addClass('hide');
    });
</script>

相关的 CSS 是:

.hide {
  visibility: hidden;
  display: none;
}

但是,当我单击 'imgPostTravel' 时,没有任何反应 - 不仅图像没有消失,我也没有看到警报。

作为完整性检查(我可能会失败),我在 jsfiddle here 中尝试了类似的代码 点击处理程序没有触发- 我所做的事情一定有根本上的愚蠢之处,但我看不到...

这是一个简单的修复,只需将标签添加到您的选择器,因为它是一个 ID:

$('#imgPostTravel').click(function () {

像这样更改您的代码

<script type="text/javascript">
        $(function () {
            $('#imgPostTravel').click(function () {
                alert('you clicked the post Travel image');
                this.addClass('hide');
            });
        });
</script>