代码之家  ›  专栏  ›  技术社区  ›  rhodesjason

为什么我不能用jquery控制这个链接的click事件?

  •  1
  • rhodesjason  · 技术社区  · 15 年前

    我很了解jquery。这个让我发疯,因为它太简单了。

    我把这个放在 <head> :

    <script>
    $(document).ready(function() {
        $(".delete_social").click(function() {
            return false;
        });
    });
    </script>
    

    在正文中,我有一系列链接:

    <a class="delete_social" href="save_page.php?delete_social=true">Delete</a>
    

    但每次单击这些链接,我都会直接进入那个PHP页面。为什么jquery没有截获点击?有什么理论吗?

    ps我尝试将一个简单的alert()事件添加到click()函数中,但没有更改,我尝试在jquery$()调用中使用“a.delete_social”。两者都不起作用。

    5 回复  |  直到 15 年前
        1
  •  2
  •   Sampson    15 年前

    如果这些链接是动态加载的,则需要使用 $.live() 要控制它们:

    $(".delete_social").live("click", function(e){
      e.preventDefault();
      // do stuff
    });
    

    美元() 使动态添加的元素符合先前声明的规则。

        2
  •  2
  •   leepowers    15 年前

    尝试此操作以阻止加载URL:

    $(".delete_social").click(function(e) {
        e.preventDefault();
        return false;
    });
    

    而且,你应该得到一个 alert 以及其他要在单击处理程序中运行的代码。如果不是,那么页面上的其他内容会导致一些奇怪的事情发生。

        3
  •  1
  •   Xavi Arik G    15 年前

    调试时我会问几个问题:

    • 是否确定单击事件已附加到锚?
      • 尝试将脚本take移动到页面底部并附加单击事件,而不使用 ready 功能。
    • $(".delete_social").length 大于 0 ?
    • 加载页面时是否有任何javascript错误?
    • jquery加载是否正确?
      • $.fn.jquery 是否返回当前使用的jquery版本?
    • 考虑使用 event.preventDefault(); 相反。
        4
  •  0
  •   Neil T.    15 年前

    试试这个:

    <script>
    $(document).ready(function() {
        $(".delete_social").click(function(event) {
            event.preventDefault();
        });
    });
    </script>
    
        5
  •  0
  •   munch    15 年前

    检查其余的javascript。 return false; .preventDefault(); 应该有技巧。如果它们不工作,通常意味着在JS中的其他地方有一个错误,并且您的浏览器永远无法访问该行代码。