preventDefault () не працуе на нейкі код у IE

У мяне ёсць некаторыя JS на маім сайце, які павінен прадухіліць наступны код ад перазагрузкі старонкі (як я выкарыстоўваю AJAX, каб абнавіць яго частка), але ў IE ён заўсёды перазагрузкі старонкі. Любы іншы браўзэр выдатна.

JS, так як givein ў іншым струмені -

$('#attachment-body').delegate("a", "click", function(e){
    e.preventDefault();
});

Спасылкі, якія па-ранейшаму перазагрузкі старонкі (які знаходзіцца ў межах # крапежных-тэл кантэйнер) -

<div id="image-navigation">
    <div id="nav-previous" class="nav-previous attachment-nav-previous float-left">
        

« Previous Image

</div> <div id="nav-next" class="nav-next attachment-nav-next float-right">

Next Image »

</div> </div>

Пры візуалізацыі яго гэта блок кода, генераванага вышэй -

<div id="image-navigation">
    <div id="nav-previous" class="nav-previous attachment-nav-previous float-left">
        

« Previous Image

</div> <div id="nav-next" class="nav-next attachment-nav-next float-right">

Next Image »

</div> </div>

preventDefault() works in IE as I use it in other areas of the site, so I can only think that something in my code is not right.

Дзякуючы.

0
Спрабаваў ўсё 3. Робячы некаторыя тэсты, у мяне гэта не тое, што preventDefault() хіба рабочы. - IE ня распазнае $ ( «# прымацаванне цела») дэлегуюць ... , дзе, як і ўсе іншыя браўзэры. Дзякуючы.
дададзена аўтар David Gard, крыніца
Добрая думка, з абавязковым, але яно не можа быць, што, як я выкарыстоўваю - $ ( «# пост-звязанымі малюнка вялікія пальцы а») націсніце (функцыя (е) {e.preventDefault ();}). Гэта працуе выдатна, на паменшаных пад асноўным выявай у галерэі. Гэта не дэлегат() , як гэта працуе ў іншых месцах у IE. Адна рэч, якую я заўважыў, што ў IE, калі дадаць абвесткі ( «Test»); у кодзе, гэта не збіранне яго і паказваючы акно з папярэджаннем, але ўсё ж неяк націснуўшы на галоўным малюнку працуе правільна, але наступная/папярэдняя спасылкі проста перазагрузіце старонку. Ці ёсць спосаб у IE адсочвання менавіта тое, што выкарыстоўваецца JS?
дададзена аўтар David Gard, крыніца
Вы спрабавалі жыць() замест дэлегата (), ці проста націсніце (), калі вы не дынамічна генераваць тэгі анкерных?
дададзена аўтар Jerry, крыніца
Можа быць, што IE не можа мець атрыбут OnClick <я> і а індывідуальны злучае. Паспрабуйце дадаць вярнуцца ілжывым; у OnClick. Хоць я б рэкамендаваў не выкарыстоўваць OnClick наогул, і проста звязаць у іншым месцы.
дададзена аўтар Jerry, крыніца

1 адказы

Я думаю, што я вырашыў гэта зараз ...

Калі наступная/папярэдняя спасылка ў маёй галерэі была націснутая, ён стрэліў функцыю JS (выкарыстоўваючы OnClick() ), які першым ачысьціў DIV, які я запускаў preventDefault() agianst , Замест гэтага, я схаваў яго, і цяпер ён працуе.

Я не эксперт, але гэта выглядае як тэсты IE для .delegate() , .live() і націсніце() Спосабы пасля ён запускае функцыю, указаную ў лінію (гэта азначае, што # прымацаванне цела не існуе ў кропцы была праверка на яе), дзе, як іншыя браўзэры робяць гэта наадварот.

0
дададзена
Дзякуючы Джэры, але няшчасны я перадаю дадзеныя, сабраныя пры загрузцы старонкі з дапамогай PHP функцыі JS (ідэнтыфікатараў і бацькоў у асноўным), і пакуль я не ведаю спосаб, каб атрымаць гэтую інфармацыю дынамічна, без істотных змяненняў у мой код. Адзін для будучыні, я думаю.
дададзена аўтар David Gard, крыніца
Дэлегат, жыць() і націсніце() узяты з JQuery, зачапіўшы ў падзею браўзэра з addEventListener і г.д. па-рознаму. Рады, што ты атрымаў гэта працуе. Акрамя таго, вы можаце захацець адысці ад выкарыстання OnClick для прызначэння дзеянняў. Гэта будзе азначаць лепшае падзел кантэнту/логіку, лягчэй чытаць код, а таксама магчымасць прызначыць некалькі дзеянняў падзеі пстрычкі.
дададзена аўтар Jerry, крыніца