我希望我不只是犯了一个愚蠢的错误,但由于某种原因,以下代码不起作用。唯一发生的事情是它在控制台中记录“就绪”,但在.click
中没有任何记录使用Javascript:
var Photobooth = (function (){
var api = {};
var init = function(){
form_ready();
};
var form_ready = function(){
console.log("ready");
$('#btn-signin').click(function(e){
e.preventDefault();
console.log('click');
$.ajax({
type: 'POST',
url: "entertainment/photobooth/signin/action/",
data:$(this).serialize(),
success: function(){
$(this).addClass("done");
}
});
});
};
init();
return api;
})();
HTML:
<a id="btn-signin" href="##">SIGN IN </a>
解决方案:通常情况下,我将JS代码放在文档的末尾,然后是关闭的主体...在这种情况下,我必须把它放在开头并忘记放置文档。已经完成了现在。感谢
答案 0 :(得分:4)
您需要document.ready wrapper:
var Photobooth = $(function (){...
....
init();
return api;
});
答案 1 :(得分:0)
http://jsfiddle.net/NiceGuy4263/LchcF/2/
在我的示例中,您将看到我将代码包装在jQuery ready函数中。
答案 2 :(得分:0)
答案 3 :(得分:0)
我确定您在创建<a>
之前调用了您的代码。使用jQuery的ready
或将代码移到页面底部。