4

jqueryプラグインを作成しています。これはChrome、Mozilla、IE 9では正常に機能しますが、IE 8/7では、「$ ctxObj.control2.val(opt.topicDefaultText);」の行でパーミッション拒否エラーが発生します。

IEコンソール

Test.Plugin = function () {
var $ctxObj = {};
var opt = {};
var initEvents = function() {

    $ctxObj.control2.val(opt.topicDefaultText);

    $ctxObj.control2.on('click', function (e) {
        somefunction();
    });

    $ctxObj.control1.on('click',function(){
 anotherfunction();
    });
};
return {
    init: function (options) {
        var defaultOptions = {
            control1: '#control1',
            control2: '#control2',
            topicDefaultText:'test'
        };
        opt = $.extend({}, defaultOptions, options);
        $ctxObj.control1 = $(opt.control1);
        $ctxObj.control2 = $(opt.control2);
        initEvents();
    }
};

}();

以下のように各コントロールの変数を宣言すると、次のようになります。

var $ control1 = $('#control1');

var $ control2 = $('#control2');

次にコードを使用します

   $control2.val(opt.topicDefaultText);

    $control2.on('click', function (e) {
        somefunction();
    });

    $control1.on('click',function(){
      anotherfunction();
    });

上記のコードを使用すると、IEでエラーは発生しませんが、このプラグインのように、非常に多くのコントロールがあるため、このようにしたくありません。

4

2 に答える 2

0

IE は jQuery に大きな問題を抱えています。私の IE9 では、jQuery をテストしているときに、常に ActiveX コントロールを有効にするように指示されます。IE ユーザーに ActiveX コントロールを有効にするように伝えてみてください。

于 2013-01-21T12:26:16.203 に答える
0

すべてのオブジェクト プロパティが設定されていること、および実際にそれらにアクセスする権限があることを確認してください。

于 2012-11-24T10:05:47.347 に答える