كيف يمكنني إنشاء مرساة HTML فارغة حتى الصفحة لا "تقفز" عند النقر فوق ذلك؟

StackOverflow https://stackoverflow.com/questions/493175

  •  20-08-2019
  •  | 
  •  

سؤال

وأنا أعمل على بعض مسج لإخفاء / إظهار بعض المحتوى عند النقر على رابط. أنا يمكن أن تخلق شيئا مثل:

<a href="#" onclick="jquery_stuff" />

ولكن اذا كنت تنقر على هذا الارتباط بينما أنا تمريره أسفل على الصفحة، وسوف تقفز مرة أخرى إلى الجزء العلوي من الصفحة.

إذا أفعل شيئا مثل:

<a href="" onclick="jquery_stuff" />

وستتم إعادة تحميل الصفحة، والذي يخلص صفحة من كل التغييرات التي جعلت جافا سكريبت.

وشيء من هذا القبيل:

<a onclick="jquery_stuff" />

هل تعطيني النتيجة المرجوة، لكنه لم يعد يظهر كارتباط. هل هناك طريقة لتحديد مرساة فارغة حتى أتمكن من تعيين معالج جافا سكريبت لهذا الحدث onclick، من دون تغيير أي شيء على الصفحة أو تحريك شريط التمرير؟

هل كانت مفيدة؟

المحلول

ووضع "عودة كاذبة." على الخيار الثاني:

<a href="" onclick="jquery_stuff; return false;" />

نصائح أخرى

وتحتاج إلى return false; بعد jquery_stuff:

<a href="no-javascript.html" onclick="jquery_stuff(); return false;" />

وهذا سيلغي الإجراء الافتراضي.

ويمكنك ببساطة كما مثل أدناه:

<a href="javascript:;" onclick="jquery_stuff">

ومسج لديه وظيفة بنيت في هذا يسمى preventDefault التي يمكن العثور عليها هنا: http://api.jquery.com/event.preventDefault/

وهنا مثال على:

<script>
$("a").click(function(event) {
    event.preventDefault();
});
</script>

ويمكنك أيضا بناء وصلة مثل هذا:

<a href="javascript:void(0)" onclick="myJsFunc();">Link</a>

وتحقق eyelidlessness "تعليق (استخدم زر، وليس لمستثمر رئيسي). كان على وشك الرد على نفس النصيحة. مرساة لا تصل إلى مورد ومجرد تنفيذ وينبغي تنفيذ برنامج نصي كزر.

<اقتباس فقرة>   

والتوقف عن وضع معالجات الأحداث الخاصة بك في HTML، والتوقف عن استخدام علامات مرساة   التي لا تخدم ترسيخ أغراض الدلالي. استخدام زر وإضافة   انقر معالج في جافا سكريبت الخاصة بك. مثال: HTML و JavaScript <button id="jquery_stuff">Label</button>   $('#jquery_stuff').click(jquery_stuff);. يمكنك استخدام CSS أسلوب ل   زر لتبدو وكأنها رابط، عن طريق إزالة الحشو، والحدود، وهامش   لون الخلفية، ثم إضافة ما تبذلونه من أنماط الارتباط (على سبيل المثال. واللون   النص الديكور). - eyelidlessness 19 أكتوبر '10 في 17:40

<a href="javascript:;" onclick="jquery">link</a>

وhref يتطلب شيئا في هناك إذا كنت تريد أن لا يطفو على السطح أخطاء في المصادقون لأتش تي أم أل. وjavascript:; هو حامل مكان جيد.

إذا كنت تريد حقا أن استخدام #:

<a href="#me" name="me" onclick="jquery">link</a>

كن حذرا مع return false;، فإنه يوقف السلوك الافتراضي من كل ما تقومون به.

وأيضا إذا شبيبة الخاص بك هو مثل تقديم قد واجهت مشاكل في إنترنت إكسبلورر.

<a href="javascript:// some helpful comment " onclick="jquery_stuff" />

وعادة ما تستخدم <span> وأسلوب أنها تبدو وكأنها رابط عندما كنت في حاجة لتحقيق شيء من هذا القبيل.

  <a href="#" class="falseLinks">Link1</a>
  <a href="#" class="falseLinks">Link2</a>

والخ ..

وJQUERY:

  $(function() {
    $("a.falseLinks").click(function() {
      // ...other stuff you want to do when links is clicked

      // This is the same as putting onclick="return false;" in HTML
     return false;
    })
  });

وكانeyelidlessness على douchy قليلا في الطريق قال ذلك، ولكن كان على حق. هذا هو أنظف طريقة للقيام بذلك. لماذا استخدام مسج إذا كنت ثم ستعمل نعود إلى الفانيليا جافا سكريبت لالاشياء مسج لا أسهل وأنظف؟

وعادة ما أفعل:

<a style="cursor:pointer;" onclick="whatever();">Whatever</a>

وماذا عن هذا:

<a href="#nogo" onclick="foo();">some text</a>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top