Плагин jQuery Address - Как получить ссылку, нажатую в $ .address.change () - PullRequest
2 голосов
/ 28 сентября 2011

Я пытаюсь использовать плагин Address из http://www.asual.com/jquery/address/, и мне действительно нужно иметь доступ к ссылке или объекту, по которому щелкнули, который вызывает функцию $ .address.change.

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

<a href="#" class="active" rel="address:/show-my-activity">Activity</a>

А потом у меня есть функция $ .address.change, которая выглядит следующим образом:

<script language="javascript">
    $.address.internalChange(function (e) {
         // this is where I need to get the obj of what was clicked to trigger it
         // find out what the e.value is, and do the ajax needed
    });
</script>

Я уже просмотрел все свойства "e", но не могу найти ничего, что отсылает меня обратно к объекту, по которому щелкнули. Вот что возвращается из переменной "e" ...

undefinedtype value :change
timeStamp value :1317227369056
jQuery1317227368799 value :true
value value :/show-my-activity
path value :/show-my-activity
pathNames value :show-my-activity
parameterNames value :
parameters value :[object Object]
queryString value :
result value :undefined
target value :[object Object]
currentTarget value :[object Object]
handler value :function (e) {
    var str;
    var obj = e;
    for (prop in obj) {
        str += prop + " value :" + obj[prop] + "\n";
    }
    alert(str);
    if (e.value === "/showMyActivity") {
    }
}
data value :undefined
handleObj value :[object Object]
preventDefault value :function () {
    this.isDefaultPrevented = Z;
    var a = this.originalEvent;
    if (a) {
        a.preventDefault && a.preventDefault();
        a.returnValue = false;
    }
}
stopPropagation value :function () {
    this.isPropagationStopped = Z;
    var a = this.originalEvent;
    if (a) {
        a.stopPropagation && a.stopPropagation();
        a.cancelBubble = true;
    }
}
stopImmediatePropagation value :function () {
    this.isImmediatePropagationStopped = Z;
    this.stopPropagation();
}
isDefaultPrevented value :function Y() {
    return false;
}
isPropagationStopped value :function Y() {
    return false;
}
isImmediatePropagationStopped value :function Y() {
    return false;
}

Любая помощь будет принята с благодарностью.

1 Ответ

5 голосов
/ 28 сентября 2011

Глядя на документацию здесь http://www.asual.com/jquery/address/docs/

Вы можете сделать это в событии нажатия вашей ссылки.

$('a').click(function() {  
    $.address.value($(this).attr('href'));  
});  

Затем захватить его с помощью event.value.

Редактировать: Я обновил вышеупомянутое решение с тем, что я думаю, может быть полезным.В качестве альтернативы вы можете иметь глобальную переменную, которой вы назначаете свой объект в рамках события click.Затем вы можете использовать эту переменную в вашей другой функции.

...