2011-01-06 5 views
1

Каков наилучший способ передать var full в функцию b. Я не хочу использовать глобальные переменные. Возврат - единственный вариант.Передача переменных в jquery

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js" type="text/javascript"></script> 

<style> 
    .aaa, .bbb, .ccc { width:100px; height:100px;background-color:#ccc;margin-bottom:5px;} 
</style> 
<body class="123"> 

    <p id="ptest"></p> 
    <p class="aaa" id="aaaid"></p> 
    <p class="bbb" id="bbbid"></p> 
    <p class="ccc" id="cccid"></p> 
    <div></div> 
</body> 
<script type="text/javascript"> 
    $("body").click(function(e){ 
     var name = $(e.target)[0].nodeName; 
     var nameid = $(e.target)[0].id; 
     var classname = $(name+"#"+nameid).attr('class'); 
     var full = name+"#"+nameid; 
     console.log(nameid); 

     function b(){ 
      alert(full); 
     }; 
    }); 
</script> 
+0

Вы не используете б в любом месте. Где его зовут? – david

ответ

6

Вы можете передать переменную в функцию, определив его следующим образом:

function b(x) { 
    alert(x); 
} 

и затем вызвать его с указанием его имени и передавая переменную в качестве аргумента:

b(full); 

Таким образом, в в контексте вашего кода:

$("body").click(function(e){ 
    var name = $(e.target)[0].nodeName; 
    var nameid = $(e.target)[0].id; 
    var classname = $(name+"#"+nameid).attr('class'); 
    var full = name+"#"+nameid; 
    console.log(nameid); 

    function b(x){ 
     alert(x); 
    }; 

    b(full); 
}); 
1

аргумент? здесь что-то не хватает?

function b(x){ alert(x); }; 

вызов с

b(full); 
1
// define b 
    function b(full) { 
     alert(full); 
    } 

На самом деле, вы не используете глобальные переменные. Вы определяете их внутри анонимной функции JQuery, связанной с элементом body.

1

Если вы не хотите, чтобы функция b существовала или использовалась e вне функции щелчка, я бы переместил его за пределы анонимной функции. А потом просто указать аргументы в определении, то просто передать их как обычные

Пример

<script type="text/javascript"> 
    $("body").click(function(e){ 
     var name = $(e.target)[0].nodeName; 
     var nameid = $(e.target)[0].id; 
     var classname = $(name+"#"+nameid).attr('class'); 
     var full = name+"#"+nameid; 
     console.log(nameid); 
     b(full); 
    }); 
    function b(full) 
    { 
     alert(full); 
    }; 
</script> 
Смежные вопросы