2012-09-05 35 views
1

我正在研究一个codecademy.com课程,它教会了如何使用jQuery构建条形图。最后一组指令是添加一个点击事件到$ bar来显示它的值。它解释了JavaScript:单击事件时对象的值

匿名功能是这样的:function(arg) { code }。在此 的情况下,.click处理程序将具有e作为其参数的单击事件 ,因此您的实现应该有function(e) { alert code }在 ,.click()之内。

这里是我应该修改

// Exercise 5 
function addBarClickEvent($bar,value) { 
    // add a click event to the bar that 
    // pops up an alert with the bars value 
    $bar.click(
     // your code goes here! 

     } 
    ); 
} 

我都尝试以下给出,但既不工作的解决方案的功能。该课程不幸的是不提供解决方案。任何人都可以帮忙

// Exercise 5 
    function addBarClickEvent($bar,value) { 
     // add a click event to the bar that 
     // pops up an alert with the bars value 
     $bar.click(
      // your code goes here! 
       alert($bar.value)  //my attempt 
       alert(e.value)   //my second attempt 
      } 
     ); 
    } 

我收到此错误信息

确保来定义。点击作为一个匿名函数 显示警报的说法。

+0

尝试使用'this.value'。 – robbrit

+0

@robbrit没有工作。我收到了此错误消息“确保将参数定义为.click作为显示警报的匿名函数。” – BrainLikeADullPencil

+0

@ user1647484看看Robin Maben的回答。你忘了'function(){'部分 –

回答

2

假设你要显示的值是当时经过的结合

function addBarClickEvent($bar,value) { 
    // add a click event to the bar that 
    // pops up an alert with the bars value 
    $bar.click(function(){ 
     alert(value); 
    }); 
} 

如果没有价值 -

$bar.click(function(){ 
    // get value somehow 
    //$(this).data('some-value'); 
}); 
+0

不起作用。顺便说一下,我收到了我所做的所有尝试的错误消息。 “确保将参数定义为.click作为显示警报的匿名函数。” – BrainLikeADullPencil

+0

@ user1647484:在这两种情况下,*都是匿名函数。 –

+0

也许这是错误的'e'参数?收到的错误信息当然不是内置的javascript错误,所以我猜测匿名函数需要根据指令构造才能工作。 – MrOBrian

0

的问题告诉你该怎么做: “你的实现应该在.click()中有函数(e){提示代码}”

只需写下它的内容:$bar.click(function(e) { alert(this.value); }

调整this.value具体情况取决于值实际上是 - 我不知道也不可能猜;)