0

リンクをクリックすると、このクラスを取得した後に選択されたという名前のクラスが取得されます。「選択された」クラスが失われるまで無効にする必要がありますが、クラスliなしまたはクラス「なし」では他に影響を与えることはできません

    function abrePlanta(idPlanta, desc, image){
    h = screen.height;

    if ($('li').hasClass("selected")) {
        return false;
    }

    $('#image_preview').html('<img src="../interface_test/images/loading.gif" />');
    $('ul li.selected').removeClass('selected').addClass('none');
    $(this).closest('li').addClass('selected').removeAttr("disabled");

    if(h >= 960){
       size = 100;
    } else if(h < 960){
        size = 90;
    }

   $.get('2.php', { id_planta: idPlanta, size: size }, function(img){
        $('#image_preview').html(img);
   });
   $('#description').html(desc);
   $("#imagezoom").attr("src", "../../images/plantas/sso/" + image);
   return false;
}

<li><a href='javascript:void(0);' onclick="return abrePlanta.call(this, 2, "text", "image.jpg")"></a></li>

そして、それは機能しませんevent.preventDefault

私はonclick関数で使用しています

4

3 に答える 3

1

これは、いくつかのことを理解するのに役立つかもしれない JSFiddleです...


あなたの問題は、関数を宣言する場所です:

<a href="#" onclick="myfunction()">test2</a>

これは関数 (true/false を返す) を呼び出しますが、何もしません。イベントのバブリングをキャンセルするには、関数の結果を返す必要があります。

<a href="#" onclick="return myfunction()">test2</a>

これにより、関数から「false」が返され、自然なクリック イベントがキャンセルされます。

于 2013-08-23T20:21:21.627 に答える