Jquery preventDefault() Yontemi

Daha once hazirlddigim projede Google Chrome ile test ederken developer penceresinde "vent.returnValue is deprecated. Please use the standard event.preventDefault() instead." ibaresini gormusunuzdur. Bunun anlami tarayici bir olayin geri donusu olmadigi, bir islemi gerceklestiremdigini belirtir.

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js" charset="utf-8"> </script>
</head>
<body>
    <a href="#">Tıkla</a>
    <script>
        $(function () {
            $("a").click(function (e) {
                alert('merhaba');
            });
        });

    </script>
</body>
</html>

Yukariki kod button tiklamamizda taryici bizim istedigimizi yapar ama sayfa yukari dogru scrooll yapar. Scroll yapmasi istenmeyen bir durumdur. Yani tarayiciya bu olay karsisinda geri donus degerini vermezi gerekir. 

<script>
        $(function () {
            $("a").click(function (e) {
                e.preventDefault(); // Gerekli satir. Ilk satirda olmasi onemli.
                alert('merhaba');
            });
        });
    </script>

Bir sonraki yazimizda gorusmek uzere.

Ayrica preeventDefault yerine return false cozum olabilir. Ama ikisi ayni sey degildir. Asagida return false nin neye esit oldugu gosterilmekte.

function() {
  return false;
}

// IS EQUAL TO

function(e) {
  e.preventDefault();
  e.stopPropagation();
}

Bu linkte farki anlatilmis.

 

Add comment

The file '/Custom/Widgets/Calendar/widget.cshtml' does not exist.The file '/Custom/Widgets/Category list/widget.cshtml' does not exist.The file '/Custom/Widgets/Tag cloud/widget.cshtml' does not exist.The file '/Custom/Widgets/Page List/widget.cshtml' does not exist.The file '/Custom/Widgets/Month List/widget.cshtml' does not exist.