免责声明:对 JS 非常业余,我只知道如何操作它......
所以我正在运行两个 jQuery 脚本。其中一个在使用后会阻止另一个正常工作。我记得不久前发生这种情况时我必须封装其中一个,然后在下一个中执行它。
封装的代码:
var setUpScroll = function(){
$(document).ready(function() {
$("body").niceScroll(); // The document page (body)
$("#mid-col-main-inner").niceScroll(); // Second scrollable DIV
});
};
setUpScroll();
其他代码(isotope.js)
$(function(){
var $container = $('#mid-col-main-inner');
$container.isotope({
itemSelector : '.sbox'
});
var $optionSets = $('#options .option-set'),
$optionLinks = $optionSets.find('a');
$optionLinks.click(function(){
var $this = $(this);
// don't proceed if already selected
if ( $this.hasClass('selected') ) {
return false;
}
var $optionSet = $this.parents('.option-set');
$optionSet.find('.selected').removeClass('selected');
$this.addClass('selected');
// make option object dynamically, i.e. { filter: '.my-filter-class' }
var options = {},
key = $optionSet.attr('data-option-key'),
value = $this.attr('data-option-value');
// parse 'false' as false boolean
value = value === 'false' ? false : value;
options[ key ] = value;
if ( key === 'layoutMode' && typeof changeLayoutMode === 'function' ) {
// changes in layout modes need extra logic
changeLayoutMode( $this, options )
} else {
// otherwise, apply new options
$container.isotope( options );
}
return false;
});
});
有人知道我需要在哪里放置 setUpScroll 吗?如果这能解决这个问题?如果我需要包含任何其他信息,请告诉我。
编辑:忽略封装信息。不管怎样,脚本交互不正确......
最佳答案
除非您想多次调用它,否则不需要创建 setUpScroll 函数。
我认为你想做的是:
(function($) { //jQuery will map to $ now
self.setUpScroll = function(){
$(document).ready(function() {
$("body").niceScroll(); // The document page (body)
$("#mid-col-main-inner").niceScroll(); // Second scrollable DIV
});
};
setUpScroll();
})(jQuery); // <-- pass jQuery to your anonymous function
关于javascript - 其他脚本中的封装函数应该放在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8829095/