2009-07-23 12 views
1

これはjavascriptに関する質問です。このウェブサイトに言及しているという事実は無関係です。このに属していません。jQuery SO投票オブジェクトとスコープ


あなたがスクロールするように私はここにStackOverflowでの回答の最初のページへの回答のGreasemonkey script to auto-load additional pagesに取り組んでいます。これはうまくいきます。ロードされたアイテムをアップ/ダウン投票する機能を維持したいので、$ .live()も使用しています。これは正常に動作しています。

私の問題は、SOによって使用される投票オブジェクトが$ .live()メソッドのスコープ内に見つからない、または少なくともそれが問題だと思います。

$(".vote-up").live("click", function(D){ 
    vote.up($(D.target)); 
}); 

$.get("https://stackoverflow.com/questions/1151074", function(data){ 
    $("div.answer", data).insertAfter(".answer:last"); 
}); 

これは、テストするためにFirebugコンソールに貼り付けることができるサンプルコードのビットです。 .live()呼び出しの文脈で投票がアクセス可能でないことがわかります。これをどうすれば解決できますか?

+0

'unsafeWindow.vote.up()'を試しましたか? –

+0

@crescentfreshそれは私を一歩近づけたようです。票は現在拘束力がありますが、非常に脆弱な相互作用です。ありがとう、結構です。 – Sampson

+0

ええ、それはGreasemonkeyでやったところです。それは一種のセキュリティ対策です。あなたが忘れるときに迷惑になる。 –

答えて

1

お試しunsafeWindow.vote.up()

the docsを参照してください。それは一種のセキュリティ対策です。あなたが忘れるときに迷惑になる。

関連する問題