2012-05-09 3 views
1

В настоящее время я использую плагин jquery.address для достижения глубокой привязки.JQuery.address - удалить # из url

Например, я хочу загрузить test1.html. Я нажимаю на ссылку, и она отображается на адресной строке/#/test1. Я бы хотел показать только/test1 без хэштега. Я использую PHP в случае перезагрузки страницы пользователем.

Вот мой код:

JS -

<script type="text/javascript"> 
/*<![CDATA[*/ 
$("document").ready(function(){ 

    function loadURL(url) { 
     console.log("loadURL: " + url); 
     $("#area").load(url); 
    } 


    // Event handlers 
    $.address.init(function(event) { 
     console.log("init: " + $('[rel=address:' + event.value + ']').attr('href')); 
    }).change(function(event) { 
     $("#area").load($('[rel=address:' + event.value + ']').attr('href')); 
     console.log("change"); 
    }) 

    $('a').click(function(){ 
     loadURL($(this).attr('href').replace('', /^#/)); 
    }); 

    }); 

/*]]>*/ 
</script> 

HTML -

<a href="test1.html" rel="address:/test1">Test 1</a> <br /> 
<a href="test2.html" rel="address:/test2">Test 2</a> <br /> <br /> <br /> 

Load Area: <br /> 
<div id="area"></div> 

Заранее спасибо за вашу помощь!

+4

На первый взгляд, это выглядит как ваш синтаксис 'replace' это назад –

+0

К сожалению, не работает:/ – JeremyW

ответ

0

String.replace

loadURL($(this).attr('href').replace(/^#/, '')); 

редактировать: Обратите внимание, что ^ означает "beginning of string" в регулярном выражении. Это означает, что ничего не будет в строке "/#/test1". Если вы хотите, чтобы обирать /#/ вы должны использовать это:

'/#/test1'.replace(/\/#\//, ''); 

http://jsfiddle.net/wD7LZ/

+0

Спасибо за ваш ответ, но он не работает. Это была просто проверка функции замены, но она не работает:/ – JeremyW

+0

@JeremyWagemans well '^' означает «начало строки» в регулярном выражении, так что это не соответствует чему-либо в «/#/page.htm», , – jbabey

0

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

var urlArray = $(this).attr('href').split('/'); 
var page = urlArray[urlArray.length - 1]; 
loadURL(page); 
+0

Спасибо за ваш ответ. Я боюсь, что он не работает :( – JeremyW

+0

@JeremyWagemans Попробуйте еще раз, я использовал скобки вместо скобок. Отредактировано новым кодом –

 Смежные вопросы

  • Нет связанных вопросов^_^