2015-12-24 31 views
0

编辑:这个代码应该一切工作。但它不适用于我的应用程序。JS函数返回自己/对象,不运行

所以我有一个愚蠢的简单看法。这有一个链接,我将用它来清除Ajax功能。然而JS没有运行,它“运行”,但每个函数似乎都会自行返回,并且从未真正运行。没有任何错误或任何只是奇怪的事情。我为应用程序使用了thinkbot吊带。

// view: app/views/savings/new.html.erb 
<h3> <%= title %></h3> 

<div> 
    <h4 id="suggested-savings-list"> foo 
    </h4> 
</div> 

<div> 
    <a href="" class="suggested-savings-btn">Random</a> 
</div> 
// js: app/assets/javascripts/savings/suggested_savings.js 
$(document).ready(function() { 
    var $suggestedSavingsBtn = $(".suggested-savings-btn"); 

    var updateSuggestedSavingsList = function(){ 
    // var $suggestedSavingsList = $(".suggested-savings-list") 
    console.log("clicked") 
    }; 

    $suggestedSavingsBtn.on("click", updateSuggestedSavingsList); 
    // $suggestedSavingsBtn.on("click", function(){ 
    // var foo = 2; 
    // console.log(foo) 
    // }); 
}); 

如果我调试它的控制台,并调用它的工作原理,但是当上运行()没有调用updateSuggestedSavingsList。

>updateSuggestedSavingsList() => 
> "clicked" 

如果我步骤通过它,在on()它跳转到关闭});

+0

因为'updateSuggestedSavingsList'是一个函数。如果你想“点击”出现,你应该调用它:'updateSuggestedSavingsList()'。 –

+0

我在你的代码的jsfiddle中看不到任何错误。 –

+0

你的代码片段实际上在[Fiddle]上工作(http://jsfiddle.net/mfLt7/81/) –

回答

0

您实际上将该功能绑定到该链接的click事件。

$suggestedSavingsBtn.on("click", updateSuggestedSavingsList); 

意味着, “当我点击的元素上,运行此功能updateSuggestedSavingsList”。

它只是将函数注册到事件中,如果elemen上的“click”事件触发,那么函数将被调用。

Fiddle

+0

是的,但当我点击它不会被调用的元素? – ChrisCPO

+0

@ChrisCPO它的确如此,只需勾选[Fiddle](http://jsfiddle.net/mfLt7/81/)即可。打开您的控制台并点击该链接(“随机”)。您将在控制台中看到“点击”将被打印出来。 –

+0

@ChrisCPO这是否回答你的问题? –