配列から生成されたもののこのリストがあります。配列値は、データベース内のクエリにマップされる配列キーにマップされます。今私が直面している問題は、このリストが私のajax部分に含まれている場合、ページが更新される前に1回クリックするだけで機能することです。何が得られますか?
リンクのhref=""部分をクリックすると、HTML5HistoryAPIメソッドを使用してURLを変更しています。私は主にフロントエンド開発者であるため、jQueryに少し慣れていませんが、追いつく時間がありませんでしたが、このコードを壊すリンクリストは私には意味がありません。
$("a[rel='ajax']").click(function(e){
//e.preventDefault();
pageurl = $(this).attr('href');
$.ajax({url:pageurl+'?rel=ajax',success: function(data){
$('#ajax')
.load(pageurl + ' #resultati');
}});
if(pageurl!=window.location){
window.history.pushState({path:pageurl},'',pageurl);
}
return false;
});
リンクはPHPでこの関数を使用して生成されます。違いが生じる場合は、laravelフレームワークを使用しています。
public static function filterlink ($filter, $what)
{
if (URI::segment(2) == 'make')
{
$first = URI::segment(3);
$next = URI::segment(4);
}
else
{
$first = URI::segment(2);
$next = URI::segment(3);
}
// what == 0 is the filter, what == 1 is the +filter. This reffers to the link being created.
switch (substr($first, 0, 1))
{
case ' ': // example.ex/make/[+]current starts with a plus sign.
if($what == 0)
//new no+ filter.
{
return HTML::link('make/'.self::slug($filter.'/'.$first), $filter, array('rel' => 'ajax'));
// example.ex/make/+current => example.ex/make/newfilter/+current
}
elseif($what == 1)
//new +filter
{
return HTML::link('make/+'.self::slug($filter), $filter, array('rel' => 'ajax'));
// example.ex/make/+current+replaced+by+newfilter
}
break;
default:
if($what == 0)
// new no+ filter.
{
if(!empty($next))
{
return HTML::link('make/'.self::slug($filter.'/'.$next), $filter, array('rel' => 'ajax'));
}
else
{
return HTML::link('make/'.self::slug($filter), $filter, array('rel' => 'ajax'));
}
}
elseif($what == 1 && (!empty($first)))
{
return HTML::link('make/'.self::slug($first.'/+'.$filter), $filter, array('rel' => 'ajax'));
}
elseif($what == 1 && (empty($first)))
{
return HTML::link('make/+'.self::slug($filter), $filter, array('rel' => 'ajax'));
}
}
}
リンクリストをajaxフィールドの外に配置しようとしました。これにより、退屈なページが更新されることなくajaxフローが続行されますが、リンクURLが更新されないことは明らかであり、片端リンクしか作成できず、壊れています。ページのデュアルフィルター機能。
どんな助けでも素晴らしいでしょう。