0

私はこれについて非常に初心者であり、とにかくこれら2つの値を追加できるかどうか疑問に思っています

maxScreenWidth: 480,
menuTitle: 'Menu:'

このスクリプトに。

function DropDown(el) {
    this.mainNav = el;
    this.initEvents();
}
DropDown.prototype = {
    initEvents: function () {
        var obj = this;

        obj.mainNav.on('click', function (event) {
            $(this).toggleClass('active');
            event.stopPropagation();
        });
    }
}

$(function () {

    var mainNav = new DropDown($('#mainNav'));

    $(document).click(function () {
        // all dropdowns
        $('.dropdown-menu').removeClass('active');
    });

});

前もって感謝します。

  • さらに、これは私のウェブサイトに適用しているドロップダウン メニューです。

http://tympanus.net/Tutorials/CustomDropDownListStyling/index2.html

このメニューを電話レイアウトにのみ適用しようとしていますが、画面サイズに関係なくその形を維持します。480px以上だと消えるはずですが、そうではありません。

手伝ってくれてどうもありがとう。

4

2 に答える 2

0

これらのプロパティを追加したい場合は、以下のように追加してください:

function DropDown(el, width, title) {
    this.mainNav = el;
    this.maxScreenWidth = width; //added
    this.menuTitle = title; //added
    this.initEvents();
}

現在、それらは渡せる引数としてコンストラクターの一部です

次に、コンストラクターを呼び出すときに、それらの値を渡すだけです

$(function () {
    var mainNav = new DropDown($('#mainNav'), 480, 'Menu'); //See, pass them here.

    $(document).click(function () {
        // all dropdowns
        $('.dropdown-menu').removeClass('active');
    });

});
于 2013-03-27T05:47:04.947 に答える
0

Christoper が書いたように、この値を DropDown パラメーターとして追加できます。また、グローバル変数を作成することもできます。

var maxScreenWidth = 480;
var menuTitle = 'Menu:';
function DropDown(el) {
    this.mainNav = el;
    this.initEvents();
}
//...

しかし、それを js ファイルに書き込むと、他のコードがグローバル変数にアクセスして変更する可能性があるため (結局グローバル変数です:))、この手法が存在します。

(function ($) {
    var maxScreenWidth = 480;
    var menuTitle = 'Menu:';
    function DropDown(el) {
        this.mainNav = el;
        this.initEvents();
    }
    //...
}(jQuery));

最後の例では、「プライベート スコープ」で関数を作成しているため、「プライベート」変数は他の js コードからアクセスできません。また、この関数内でのみ、アプリケーションの他のコードから DropDown にアクセスできないことに注意してください。

于 2013-03-27T06:24:16.773 に答える