【问题标题】:JQuery .click suddenly brokenjQuery .click 突然坏掉了
【发布时间】:2014-03-21 20:55:55
【问题描述】:

我在我的 php 项目中有一些运行良好的 jquery 代码......现在它不是。我不确定我更改了什么并仔细检查了 CSS 是否正确,因为我可以手动将显示更改为“无”并且它可以工作。我也知道 JQUERY 正在工作,因为同一文档中的其他元素正在运行。我错过了一些简单的东西吗?

下面是相关代码:

Javascript:

$(document).ready(function() {
$('#addq_btn, div.darken').click(function() {
    $('div#addq_lb').toggle(250);
    $('div.darken').toggle(0);
});
});

HTML:

<a href="#" class="question_btn" id="addq_btn" >Add Question</a>

<div class="darken"></div>

<div class="lightbox" id="addq_lb">
    <h3>Enter a new question below.</h3>
    <form action="" method="post">
        <textarea name="question" required="required" 
                  maxlength="150"></textarea><br /> 
    <input class="btn" type="submit" 
                  name="questionsubmit" value="Add Question">
</form>
<button class="btn" id="addq_btn">Cancel</button>
<br /><br />
<p id="smallinfo">You can add answers on this 
page after you've added the question.</p>
</div>

【问题讨论】:

  • 您检查过您的控制台吗?它说有错误吗?你试过在你的 document.ready 和你的 element.click 中写一个alert("TEST"); 吗?
  • 你的 JS 代码甚至不在脚本标签中。
  • 抱歉 JS 在单独的 .js 文件中,应该指定。
  • 究竟是什么不起作用?
  • 如果你在 jsFiddle 或其他东西中做了一个精简的用例,它对你和对我们来说会更有用。这段代码中有很多东西,为了确保你的方向是正确的,你需要配对。

标签: javascript php jquery css


【解决方案1】:

你有一个重复的 id,“addq_btn”,这样会导致冲突,jquery 无法响应事件,id 在 dom 中必须是唯一的,尝试更改我所拥有的按钮的 id,此外我建议你使用 .on('click', function(){})。

【讨论】:

  • 为什么使用on 函数比使用click 简写更好?
  • 你好,使用 .click 与使用 .on 几乎相同,不同之处在于使用 .on,您可以将相同的处理程序分配给多个元素。例如
    linka linkb linkc 然后你可以将处理程序分配给所有 a, $("#content").on("click", "a", function() { // $(this) 指向有触发器的 事件。});
  • click 也会将处理程序分配给选择器中的所有元素。
  • 好的,另外它对 dom 上尚不存在的元素有效。例如,当您使用 ajax 调用生成元素时。
  • 这根本不是真的。只有现有元素可以分配处理程序。添加新元素后,必须通过clickon 再次分配处理程序。见jsfiddle.net/Z8MpS
【解决方案2】:

有两个 ID 为 addq_btn 的元素。 ID 应该是唯一的,JQuery 会这样对待它们。更改其中一个addq_btn ID 是否可以解决此问题?

如果您希望基于某个选择器平等地使用这些元素,我建议您改用共享类,因为它们可以被多个元素重复使用。

【讨论】:

    【解决方案3】:

    嗯……这很奇怪。我开始测试,剪切和粘贴部分代码,就像它们一样,现在它正在工作......我没有任何改变。可能是某个地方或某事的奇怪空间字符。无论哪种方式,它都会再次工作。感谢您的所有帮助...抱歉,如果这是有史以来最无用的 StackOverflow 答案。

    【讨论】:

      猜你喜欢
      相关资源
      最近更新 更多
      热门标签