我试图制作我的第一个jQuery-Plugin,所以请对我温柔。
目的是使divs子元素成为可投票的。点击即可进行投票。
这是我的实际代码:
(function($){
$.fn.makeVotable = function(options) {
var settings = $.extend({
// defaults:
url: "/vote",
}, options );
this.bind("click.makeVotable", function (e) {
var parent = $(this).parent();
var foreign_type = $(parent).attr('data-vote-foreign-type');
var foreign_id = $(parent).attr('data-vote-foreign-id');
var vote_id = $(parent).attr('data-vote-id');
var vote = $(e.target).attr('data-vote-type');
var what;
if($(e.target).is('.voted')) {
what = 'delete';
} else if($(parent).children().hasClass('voted')) {
what = 'update';
} else {
what = 'add';
}
$.post(
settings.url,
{ what: what, foreign_type: foreign_type, foreign_id: foreign_id, vote: vote, vote_id: vote_id }
).done(function( data ) {
$(parent).children().removeClass('voted');
if(what != 'delete') {
$(e.target).addClass('voted');
}
if(what == 'add') {
$(parent).attr('data-vote-id',data.id);
}
}).fail(function() {
/* Heavy error like 500 */
});
});
};
})(jQuery);
$('.votable > i').makeVotable(
url: "{{URL::to('vote')}}", /* laravel way to get the URL */
);
如果删除" var设置[...]"部分只是传递网址没有"网址:"我可以使用options.url访问它,但是使用这种方法我得到了这个错误:
SyntaxError:意外的令牌':'。期待')'结束参数列表。
我做错了什么?
答案 0 :(得分:1)
你错过了一些东西(一对{}
)
$('.votable > i').makeVotable(
{ url: "{{URL::to('vote')}}" }
);