0

データベースからリンクを取得して表示するブックマークページを作成しました。ログインして、新しいリンクを追加して削除することができます。ただし、エントリを削除すると、ページをそれ自体にロードする代わりにdelete.phpが表示されます(クエリは機能します)。

この時点でコードが複雑になりすぎている可能性があり、ページの他の要素に多くのJavaScriptを使用しているため、単純なものを見落としている可能性があります。

エントリは動的に追加されるため、HTMLのこの部分が追加されます。

<h2>
    <a href="delete.php?URL='+url+'">[x]</a>
</h2>
<a href="'+url+'" target="iFrame" class="linkURL">
    <div class="bookmark">
        <h3 style="float: left;">'+title+'</h3>
        <br />
        <p>'+desc+'</p>
    </div>
</a>

JavaScript:

//  DELETE FUNCTION
$("h2 a").click(function() {
    return false;
    var action = $(this).attr('href');
    var form_data = {
        URL: $("#linkURL").attr('href'),
        is_ajax: 1
    }; // form_data
    $.ajax({
        type: "POST",
        url: action,
        data: form_data,
        success: function(response){
            if(response == 'success') {
                alert('Successful delete!');
            } else { // if
                alert('Delete failed.');
            } // else
        } // function(response)
    }); // ajax
    return false;
}); // h2

ページはここにあります:http ://samaradionne.com/links6/全体を表示する方が簡単な場合。

4

2 に答える 2

1

アンカータグaとクリックイベントの両方を使用しています。アンカータグをクリックすると、通常のリンクと同じように機能するため、実際のdelete.phpページが表示されます。コードのどこにも、「ねえ、通常のようにこのリンクを実際にたどらないでください」というものはありません。

リンクをたどらないためには、

<a href="yoururl" onclick="return false;">[x]</a>

さらに、jQueryクリックイベントをに添付しましたがh2、それ自体は悪くありませんが、実際にリンクをクリックすることが目的であるため、混乱を招きます。その場合、次のものが必要です。

$("h2 a").click(function(){});

最後に、これをすべてまとめるには、次のようにします。

 $("h2 a").click(function(){
     // your normal logic

     return false; // don't follow link
 });

onclickそして、アンカータグの内側を持っている必要はありません。

于 2012-11-08T15:28:41.357 に答える
0

私のリンクは動的に生成されたので、私の.h2クリックはまだそこにないものに自分自身を添付していました。削除関数を呼び出すイベントトリガーを追加関数に追加しました。

問題が解決しました。

于 2012-11-09T20:06:37.390 に答える