2013-03-27 4 views
0

나는이에 아주 초보자 해요 궁금하면 나는이 스크립트에이 두 값Javascript에 값을 추가하는 방법은 무엇입니까?

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 이상일 때 사라지는 것으로 추정 되나 그렇지 않습니다.

도움을 주셔서 대단히 감사합니다. 당신이 그 속성을 추가하려면

+0

리스너가 호출 될 때 적용할까요? 그렇다면 관련 CSS 규칙 (예 : * 활성 * 클래스)에 추가하십시오. – RobG

답변

0

아래 사항과 같은 추가 :

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

지금 그들은 당신이 당신에게 생성자를 호출 할 때 다음, 단지 어떤 사람들을 통과 생성자의 일환으로 무난 인수

있습니다 Christoper가 쓴 값은 전역 변수를 만들 수 있습니다, 당신은 드롭 다운 매개 변수로이 값을 추가 할 수 있습니다

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

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

}); 
+0

감사하지만 작동하지 않습니다. 어쩌면 그 문제가 다른 곳일지도 모릅니다. – Kim

+0

@ user2214314 질문에 포함 된 문제점 편집 및 게시 – SomeShinyObject

+0

더 자세한 정보를 입력했습니다. 도와 주셔서 정말 감사합니다. – Kim

0

해야한다 :

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)); 

에서 마지막 예제에서는 'private scope'로 함수를 작성 했으므로 'private'변수는 다른 js 코드에서 액세스 할 수 없습니다. 또한이 함수 내에서만 응용 프로그램의 다른 코드에서 DropDown에 액세스 할 수 없다는 점에 유의해야합니다.

관련 문제