麻烦使用\'link_to\'和jQuery

问题描述

| 我正在使用Ruby on Rails 3.0.7和jQuery 1.6.1,并将AJAX click事件绑定到
link_to
HTML输出,如以下示例所示:
link_to \'Link name\',\'#\',:id => \'link_css_id\'
如您所见,我将URL设置为\'#\'。当我单击链接时,当前视图也将移动到页面顶部。由于我不喜欢这种行为,因此我没有为URL参数设置任何内容(即
nil
\'\'
),但是单击链接后,我收到一条警告消息“错误”,该消息在消失后立即消失。然后在Firebug控制台中,我得到:
uncaught exception: [Exception... \"prompt aborted by user\" nsresult: \"0x80040111 (NS_ERROR_NOT_AVAILABLE)\" location: \"JS frame :: resource://gre/components/nsPrompter.js :: openTabPrompt :: line 468\" data: no]
如何解决此问题,并避免单击链接时出现在页面顶部的行为? AJAX请求是:
$jQ(\'#link_css_id\').bind(\'click\',function() {
  $jQ.ajax({
    type:    \"POST\",url:     \"<%= user_url(@current_user)%>/test_method\",data:    \"test_data=test\",error:   function(jqXHR,textStatus,errorThrown) {
      alert(textStatus + \' - \' + errorThrown + \'\\n\\n\' + jqXHR.responseText);
      $jQ(\'#css_id\').html(\'error\')
    },success: function(data,jqXHR) {
      $jQ(\'#css_id\').html(\'success\')
    }
  });
});
    

解决方法

        URL \“#\”表示正在设置内部锚。没有附加任何名称,它仅聚焦于整个页面,并向上滚动回到顶部。 对于使用“ 0”方法,“ 7”属性是必需的,不能省略。 使用jquery时,可以使用
preventDefault
。这将阻止事件采取默认操作(例如,单击链接将打开“ 9”网址)。这是非常有用的。您可能想要链接到现有页面,以供未启用javascript(并且ajax调用将无法使用)的用户使用,而那些已启用javascript的用户将忽略该页面。 jQuery的preventDefault文档。     ,        您可以设置
javascript:void(0)
而不是
#
,它对我有帮助。     ,        保留
#
,并使用
preventDefault
停止移动窗口的默认click事件。 http://api.jquery.com/event.preventDefault/     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...