Javascript/jQuery设置未知元素的全局变量

Javascript/jQuery设置未知元素的全局变量,javascript,jquery,global-variables,Javascript,Jquery,Global Variables,编辑 删除。这个问题不是基于代码的,但是全局变量的帮助非常受欢迎,我确实学到了很多 如何设置未知元素的全局变量 我需要在单击元素时向代码中的其余函数传递一个变量。我知道我有点接近。我只是需要一点帮助。 我的代码如下。仅当单击某个元素时,我才尝试将我的“sampleName”和“samplePath”传递给“loadPage”函数 (function ($) { //Original Variables //var sampleName = 'Book1' // samplePath = '

编辑

删除。这个问题不是基于代码的,但是全局变量的帮助非常受欢迎,我确实学到了很多

如何设置未知元素的全局变量

我需要在单击元素时向代码中的其余函数传递一个变量。我知道我有点接近。我只是需要一点帮助。 我的代码如下。仅当单击某个元素时,我才尝试将我的“sampleName”和“samplePath”传递给“loadPage”函数

(function ($) {
//Original Variables
//var sampleName = 'Book1'
//    samplePath = '/Book1/'

//Want dynamic variables
var sampleName;
var samplePath;
$(document).on("click", ".sampleDiv", function (event) {
    sampleName = $(this).attr("sample") || '';
    samplePath = 'Books/' + sampleName;
    //alert(sampleName);
   // alert(samplePath);

});//End click


function loadPage(page) {

    var img = $('<img />');
    img.load(function () {
        var container = $('.Book .p' + page);
        img.css({ width: '100%', height: '100%' });
        img.appendTo($('.Book .p' + page));
        container.find('.loader').remove();
    });

    img.attr('src', samplePath + 'pages/' + page + '.jpg');

}
})(jQuery);
我试图做的是使这些变量更具动态性,并在

<div sample='Book1'></div>

单击变量(主要是“Book1”部分)进行更改。每本“书”都有不同的编号(第1册、第2册、第3册等)。我想根据点击哪个变量来设置变量。我的DIV上的attr(“示例”)将确定书号。因此,当单击DIV时,attr(“sample”)将是变量的值


希望这有助于我解释更多问题。

只需将所有全局变量置于函数之外即可

var sampleName;
var samplePath;    
(function ($) {


$(document).on("click", ".sample", function (event) {
    sampleName = $(this).attr("sample") || '';
    samplePath = 'Books/' + sampleName;
    //alert(sampleName);
   // alert(samplePath);

});//End click

如果变量是全局变量,则必须在(函数($)外部声明{ …例如:


还有什么不起作用?对我来说。问题实际上在“loadPage”函数中。你会看到img.src。samplePath没有从我的单击传递到loadPage函数。至少我无法让它在那里发出警报。
var sampleName;
var samplePath;    
(function ($) {


$(document).on("click", ".sample", function (event) {
    sampleName = $(this).attr("sample") || '';
    samplePath = 'Books/' + sampleName;
    //alert(sampleName);
   // alert(samplePath);

});//End click
var sampleName;
var samplePath;

(function ($) {
  ...

})(jQuery);