1

JQuery に問題があります。JQuery 関数が呼び出されるたびに、if ブロックが実行されるたびにページが更新されます。

$(".remove").click(function() {
    removeOption($(this));
});

function removeOption(obj){
if (obj.parent().siblings().size() > 1){
    obj.parent().remove();
}
}

(obj.parent()...) ブロックが実行されると、ページが更新されます。関数に限定されません: if (obj.parent()... ) を if (true) に変更すると、同じ問題が発生します。removeOption(obj) を最初の関数内の匿名関数として配置すると、問題も発生します。これは JQuery のバグでしょうか?

4

2 に答える 2

6

jquery でリンク クリックを処理するときは、デフォルトの動作を無効にする必要があります。

リンクをクリックすると、jquery イベントが発生し、次に removeOption($(this)) が呼び出されます。ただし、デフォルトの動作を停止する必要があるため、次を使用します。

$(".remove").click(function() {
   removeOption($(this));
   return false;
});

最後に。

別の方法は、次のように preventDefault ( http://api.jquery.com/event.preventDefault/ ) メソッドを呼び出すことです。

 $(".remove").click(function(e) {
   e.preventDefault();
   removeOption($(this));
 });

アナス、

于 2012-11-08T15:36:52.207 に答える
0
$(".remove").click(function() {
    removeOption($(this));
    return false;
});
于 2012-11-08T15:26:08.683 に答える