私は最近、coffeescriptでjqueryプラグインを使用すると少し問題がありました(これは、Rails 3.1アセットパイプライン内で役立ちます)。私はちょっと見渡しましたが、なぜこのように振る舞うのか、実際には分かりませんでした。CoffeescriptとjQuery TypeError
それでは、なぜこれが動作しない($(上のコーナーコールの話)「overlaybox。」):
$ ->
$('#slides').sortable
axis: 'y'
update: ->
$.post($(this).data('update-url'), $(this).sortable('serialize'))
$(".overlaybox").corner()
が、これは動作しません(コーナーはjQueryの準備ができ事の外に呼び出しました) :私は...そこにそれを残す場合はたぶん私は今ちょうど盲目だけど、私
TypeError: 'undefined' is not a function (evaluating '$(".overlaybox").corner()')
を得続ける
$ ->
$('#slides').sortable
axis: 'y'
update: ->
$.post($(this).data('update-url'), $(this).sortable('serialize'))
$(".overlaybox").corner()
なぜ私はそこに残すことができないのか分からない。コンパイルされたコードでさえ正当に見えます(少なくとも私にとっては;-))。
お時間をいただきありがとうございます。
# app/assets/javascripts/application.js
//= require jquery
//= require jquery-ui
//= require jquery_ujs
//= require jquery.Jcrop
//= require jquery.corner
//= require jqtextile
//= require_tree .
# app/assets/javascripts/slides.js
$ ->
$(".overlaybox").draggable
containment: 'parent',
drag: ->
offset = $(this).position()
xPos = offset.left
yPos = offset.top
$('#slide_xpos').val(xPos)
$('#slide_ypos').val(yPos)
$('#slides').sortable
axis: 'y'
update: ->
$.post($(this).data('update-url'), $(this).sortable('serialize'))
$(".overlaybox").corner()
そしてビュー(アプリ/ビュー/スライド/ _form.html):
マルセル
UPDATE は、ここではいくつかの相対的なコードです。面白いのは、jquery document readyイベントから取り除くとすぐに、コーナーが機能することです。 私はこれのすべての範囲に関して実質的な何かを失っていると思います: コーナーの$ - >内にconsole.logを実行すると、私は未定義となります。しかし、私が$ - >(実際には以下)の外で同じことをすると、私は適切な出力を得て、jquery(もちろん)の前であっても起動します。しかし、なぜそれはjQueryブロックで利用できないのですか?それは私が行方不明のcoffeescriptの範囲のものですか? (私は今、別のプラグインで同じ問題を抱えています)
ありがとうございました!
ことが
$(function() {
console.log($('.overlaybox'));
console.log($('.overlaybox').corner);
$(".overlaybox").draggable({
containment: 'parent',
drag: function() {
var offset, xPos, yPos;
offset = $(this).position();
xPos = offset.left;
yPos = offset.top;
$('#slide_xpos').val(xPos);
return $('#slide_ypos').val(yPos);
}
});
$('#slides').sortable({
axis: 'y',
update: function() {
return $.post($(this).data('update-url'), $(this).sortable('serialize'));
}
});
return $(".overlaybox").corner();
});
「整列可能」とは何ですか?最小限のケースを見てしまうと、問題が再現されますか?このエラーは、コーナープラグインが使用しようとしたときにロードされていないことを示しています。最初のプラグインは、2番目のプラグインよりもうまく動作する可能性が高いと思います。 –
ちょっと、 $ - > の中に少なくともいくつかのコードを入れるためにソート可能なコードを残しました。 しかし、私のプロファイラによれば、コーパスプラグインは間違いなくcoffeescriptコードの前にロードされています。そして私には、最初の例はもっと意味がありますが、うまくいきません。 全く変わった.. –
'$ .fn.corner'を見てそこにあるものを見ることができますか? 「コーナー」名を使用したいと思う2つのことがありますか? –