3

私はGoogle Chrome拡張機能を開発しています。既存の Web ページ (コンテンツ レベル) の jquery-ui ダイアログ内で jquery-ui 日付ピッカーを使用しようとしています。

そのように:スクリーンショット

datepicker ウィジェットの任意のボタンをクリックすると、「DP_jQuery_1274168529407 が定義されていません」というメッセージが表示されます。これは、jquery datepicker が html に追加されたためだと思います。

onclick="DP_jQuery_1274192751418.datepicker._selectDay('#new\\-app\\-date',4,2010, this);return false;"

これは、html の変更を避けるために datepicker ライブラリを変更する必要があることを意味しますが、次のように各 obj にイベントを添付します。

.click(function(){DP_jQuery_1274192751418.datepicker._selectDay('#new\\-app\\-date',4,2010, this);return false;})

これにより、おそらくスコープが安全に保たれます

どう思いますか?

4

1 に答える 1

3

私のhaxorzスキルが再び優勢になりました!

関数 _updateDatepicker の jquery-ui.js のコードを 8307 行で次のように変更します。

.find('[onclick]').each(function(){
    var command = $(this).attr('onclick')+'';
    $(this).removeAttr('onclick');
    command = command.replace("function onclick(event) {","");
    command = command.substr(0, command.length-2);
    $(this).click(function(){eval(command);});
})
.end()

この問題を解決します。

私はそれが醜いことを知っていますより少ない行でそれを行うことができることを知っていますしかし、それはjquery uiチームがこれを修正するまでの一時的なものです

于 2010-05-20T14:21:26.540 に答える