Передача параметров по ссылке на событие клика в Jquery - PullRequest
1 голос
/ 24 марта 2011

У меня есть одна функция:

jQuery('#'+'linkhere').click(getHashPageClick);

и в функции я получаю значение window.location.hash:

var getHashPageClick = function(evt) {
    var hashParam =  window.location.hash.substring(1);
}

Но теперь я хочу отправить параметр в getHashPageClick(), скажем value, добавить к нему значение hashParam и получить к нему доступ в моей вызывающей функции?Так что-то вроде этого, может быть?:

jQuery('#'+'linkhere').click(getHashPageClick(value);
 alert("value");

и в вызываемой функции измените значение value:

    var getHashPageClick = function(evt,value) {
        var hashParam =  window.location.hash.substring(1);
        valuevalue+hashParam;
return value;

}

Будет ли это приемлемым или есть другой способ отправки параметра по ссылке, чтобы он былдоступно в вызывающей функции и измененное значение должно быть отражено?Потому что этот путь мне не кажется правильным.Любая помощь будет оценена.Спасибо.

Ответы [ 2 ]

3 голосов
/ 24 марта 2011

Вы не можете передать значение по ссылке в JavaScript, но вы можете передать то, что уже является ссылкой.Например, вы можете использовать литерал объекта для имитации указателя:

function getHashPageClick(p) {
    p.value = p.value + window.location.hash.substring(1);
}

var p = { value: 'some value' };
getHashPageClick(p);
1 голос
/ 24 марта 2011

Вот как я могу настроить нужные вам функции:

jQuery(document).ready(function(){
     var value = 'some value';
     jQuery('#linkhere').click(function(){
          value = getHashPageClick(value);
          alert('the value is now: '+value);
     });
});

var getHashPageClick(value) {
        var hashParam =  window.location.hash.substring(1);
        value = value+hashParam;
        return value;
}

Или, если вы не хотите поднимать головки только одной переменной 'value', создайте две переменные для совместной работы:

jQuery(document).ready(function(){
     var value = 'some value';
     jQuery('#linkhere').click(function(){
          hashValue = getHashPageClick(value);
          alert('the hash value is now: '+hashValue);
     });
});

var getHashPageClick(value) {
        var hashParam =  window.location.hash.substring(1);
        var hashValue = value+hashParam;
        return hashValue;
}

Надеюсь, это поможет.

...