2012-04-25 21 views
1

私のボタンの正しいwindow.location.hrefの値に問題があります。これはすべてのページで動的に行われることですだから私がしたいことは、現在のモジュールコントローラにあるaddnew関数に行きたいということです。例えば、ユーザがtitlesモジュール(フォルダ)にあり、タイトルコントローラにしたいとします。タイトル(モジュール)/タイトル(コントローラ)/ addnew(メソッド)に行きますが、これは単なる例です。しかし、この例では、私は別のページに行くと言うtitleStatusesコントローラタイトル(モジュール)/ titleStatuses(コントローラ)をクリックした場合、woudldはタイトル(モジュール)/タイトル(コントローラ)/ addnew(メソッド)。ダイナミックリンクが適切に指示されていません

$('.addnew').append('<button>Add New</button>').css('float', 'right').css('margin', '5px 0 0 10px').css('padding-right', '10px'); 
$('.addnew button').css('width', '100px').click(function() { 
    window.location.href = 'addnew'; 
    return false; 
}); 

答えて

2

これを試してみてください:

window.location.href = window.location.href+'addnew'; 

リンクのhrefの値は、あなたがやろうとしていると思われるものです既存のURLへの追加されます。ただし、Javascriptを使用してURLを設定する場合、「addnew」は「/ addnew」と同じです。これは「http://domain.com/addnew」と同じです。

上記の方法(URLの末尾にスラッシュを付ける)を使用すると、addnew関数が現在のURLの残りの部分に追加されます。

+0

を。素晴らしい答え!ありがとうございました。 –

0

私は通常、JavaScriptのURL helper機能を使用できるようにするために私のヘッダにスクリプトを持っています。もちろん、ヘルパーが必要です。あなたの具体的なjQueryの機能については

<script> 
    var base_url = <?=base_url()?> 
    var current_url = <?=current_url()?> 
</script> 

、あなたが持つclickイベントバインドすることができます完璧である

$('.addnew button').css('width', '100px').click(function() { 
    window.location.href = current_url + '/addnew'; /* or something similar */ 
    return false; 
}); 
関連する問題