【问题标题】:jQuery: Capture anchor href onclick and submit asynchronouslyjQuery:捕获anchor href onclick并异步提交
【发布时间】:2012-09-20 20:44:39
【问题描述】:

我几乎从来没有玩过客户端的东西,而这个可能很简单的任务让我很头疼:)

我有一些链接。 OnClick 我想阻止默认操作,捕获其 href url,向该 url 提交一个 ajax GET,然后简单地 alert() 与结果......但我什至无法超越起跑线:)

播放时间锚点示例:

<a class="asynch_link" href="good/1.html">Click Here</a>
<a class="asynch_link" href="good/2.html">Click Here</a>

现在,我对 SO 上的类似请求提出了一些建议,但链接仍然会导致浏览器导航到 href url。

即使只是

<script type="text/javascript">
    $('a').click(function (event) 
    { 
         event.preventDefault(); 
         //here you can also do all sort of things 
    });
</script>

...链接仍然导航到其他页面。

我在这里有点像婴儿:)

我们将不胜感激。

而且,是的,我 AM 包括 jQuery :)
&lt;script src="//67.20.99.206/javascripts/jqueryCountdown/1-5-11/jquery.countdown.js" type="text/javascript" charset="utf-8"&gt;&lt;/script&gt;

【问题讨论】:

  • jquery.countdown.js 似乎是一个 jQuery 插件。你也包括完整的 jQuery 库吗?如ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js
  • 天哪!!!! ...我将错误的行复制/粘贴到我的沙箱中...哈哈哈...哦,我现在完全脸红了...哇哦男孩...谢谢! :)

标签: jquery ajax hyperlink anchor


【解决方案1】:
$('a').click(function(event) { 
    event.preventDefault(); 
    $.ajax({
        url: $(this).attr('href'),
        success: function(response) {
            alert(response);
        }
    });
    return false; // for good measure
});

【讨论】:

  • 我知道这已经有好几年了,但它帮助了我。谢谢!
【解决方案2】:

试试这个

$('a').click(function (event) 
{ 
   event.preventDefault(); 

   var url = $(this).attr('href');
   $.get(url, function(data) {
     alert(data);
    });

 });

【讨论】:

  • 谢谢。你让我走上了正确的道路。出于某种原因,没有返回任何内容,所以我切换了 get 并进行了一个 ajax 调用并让一切正常(就像@sushanth 最终建议的那样)......谢谢大家
【解决方案3】:

这里的问题是事件 没有被附加到您的元素,因为它们没有被绑定到 DOM 就绪事件中。尝试将您的事件包含在 DOM 就绪事件中,如果有效,您将看到警报

<script> 
    $(function() {
         $('a').click(function(event) {
            event.preventDefault();
            alert('fff')
        //here you can also do all sort of things 
        });
    }); 
</script>

在此之后发送 Ajax 请求并在 Success 回调函数中提交表单..

<script> 
    $(function() {
         $('a').click(function(event) {
             event.preventDefault();
             $.ajax({
                 url: 'url',
                 dataType :'json',
                 data : '{}',
                 success :  function(data){
                     // Your Code here

                     $('#form').submit();
                 }
             })
        });
    }); 
</script>

【讨论】:

  • 谢谢。这与我最终得到的非常相似。我没有表格,因此没有提交……但这是正确的想法。再次感谢:)
猜你喜欢
  • 1970-01-01
  • 2016-02-18
  • 1970-01-01
  • 2016-01-12
  • 1970-01-01
  • 2015-11-02
  • 2013-05-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多