0

JuiceUIメニューが設定されたASP.NET4.0Webサイトがあります。ページがデフォルトで表示されるとき、物事はうまく見えます。テーブル表示(コードでGridViewを使用)と下部にページ付けがある私のページでは、次のようなPostBackを実行するように呼び出します

__doPostBack('ctl00$MainContent$GridView21','Page$3')

JuiceUIメニューを壊します。

Web開発者コンソールのエラーコードには

Uncaught TypeError:nullのプロパティ'eval'を読み取れません

完全なトレース:

Uncaught TypeError: Cannot read property 'eval' of null juice.js:97
(anonymous function) juice.js:97
jQuery.extend.each jquery-1.8.2.js:605
(anonymous function) juice.js:96
jQuery.extend.each jquery-1.8.2.js:611
ready juice.js:55
fire jquery-1.8.2.js:974
self.fireWith jquery-1.8.2.js:1082
jQuery.extend.ready jquery-1.8.2.js:406
DOMContentLoaded

ページが最初にロードされたときに、次のウォッチ式が表示されるという事実に関連しているようです。

widget.options: Object 
proto: Object 

ページネーション#をクリックすると、値は次のように変わります。

widget.options: Object 
icons: Object 
menu: null 
position: Object 
proto: Object 

doPostbackのウィジェットオプションでメニューがnullになる原因は何ですか?これを修正するためにできることはありますか?

誰かが何が起こっているのか、そしてこれを修正するために何ができるのかを明らかにすることができますか?

ありがとうございました

4

1 に答える 1

1

コードにバグがありました。

juice.js ファイルを次のように変更する必要がありました。

        $.each( widget.options, function( prop ) {
            if( this.eval ){
                var on = this.on;

に:

        $.each( widget.options, function( prop ) {
            if( this && this.eval ){
                var on = this.on;

参考までに、IE では変更しなくても問題なく動作しましたが、Chrome と Firefox では機能しませんでした。「this」チェックを含めると、これが修正されました。願わくば、ジュースの開発者がこの投稿を見て、変更を加えるか、これに返信してください。

于 2013-02-27T16:49:02.547 に答える