0

我正在尝试在 HTML 页面中使用一些 javascript 代码,但不起作用(Ruby on Rails 项目中的所有内容)。所以我有以下 HTML 代码

   <a href="#" compilation_id = 51 onclick="start_render(this)">Render</a>

我需要的是在 js-function 中获取参数“compilation_id”

  <script type="text/javascript" language="javascript">

  function start_render(event){  
         var comp_id = $(event.target).attr('compilation_id');
         alert(comp_id);
  .....

我使用 alert(comp_id) 仅用于调试,以查看是否正确获取数据。但我得到的是“未定义”。当我在 js 函数内部设置变量的值时,一切正常。所以,

  var comp_id = 51;
  alert(comp_id); 

效果很好,我得到“51”。

我的错误是什么?

提前致谢。

4

2 回答 2

0

您正在传递this没有目标属性的对象。

如果您想获得event目标,请将您的代码更改为

 function start_render(object){
     event = event || window.event 
     var comp_id = $(event.target).attr('compilation_id');
   ...
 }
于 2013-07-04T13:47:48.077 回答
-2

尝试这个:

onclick="start_render(event)"

JS:

function start_render(e){  
     var comp_id = $(e.target).attr('compilation_id');
     alert(comp_id); 

或者:

onclick="start_render(this)"

JS:

function start_render(element){  
     var comp_id = $(element).attr('compilation_id');
     alert(comp_id); 

或者:

onclick="start_render()"

JS:

function start_render(){  
     var comp_id = $(event.target).attr('compilation_id');
     alert(comp_id);

或者:

onclick="start_render.call(this)"

JS:

function start_render(){  
     var comp_id = $(this).attr('compilation_id');
     alert(comp_id);

最好的办法:

<a href="#" compilation_id="51" id="compilation51">Render</a>

JS:

$('#compilation51').bind('click', function(){
     var comp_id = $(this).attr('compilation_id');
     alert(comp_id);
});
于 2013-07-04T13:43:36.060 回答