2010-07-14 3 views
0

ok Я разыграл свой мозг и другие, чтобы понять, почему это происходит в IE и последней версии FF. Он работает в хроме. Я новичок новичок и недавно начал использовать jquery. поэтому я даже не знаю, правильно ли я это сделаю.jQuery double event fire after post/get

его основная форма по большей части. jquery ajax post(), затем get(), чтобы обновить страницу. как только страница загружается с get, правая рукопашная/боковая панель с разборчивыми заголовками двойного огня, а также ссылки действий в панели действий. Я попытался связать событие click с bind(), live() и delegate(). он работал первоначально с привязкой, но мне пришлось перепроверять все события кликов после вызова ajax, и я пытаюсь найти способ обойти это.

я создал статическую версию приложения, что я строй здесь:

http://ishiftdelete.com/pw_mkvi/ajax_wtf.htm

для проверки: нажмите на ссылке Изменить страницу внутри страницы действия в правом нав/боковой панели. это откроет диалоговое окно модели с формой и кнопкой отправки.

ответ

1

Хорошо, так что мой друг понял это. По-видимому, скрипты загружались дважды.

BAD:

$.get(gurl, function (data) { 
    var $response = $('<div />').html(data); 
$('#mydiv').html($response.find('#mydiv').html()); //form 
}); 

ХОРОШО:

$.get(gurl, function (data) { 
    var $response = $(data); 
$('#mydiv').html($response.find('#mydiv').html()); //form 
}); 
0

Я знаю, что вы уже решили эту проблему, но и для будущих искателей, вы можете добавить обертку вокруг вашего <div> так:

<div id="myDivParent"> 
    <div id="myDiv"></div> 
</div> 

Тогда вы можете упростить свою ситуацию с помощью .load() и элемента, который вы ищете нг для, как этот:

$("#myDivParent").load(gurl + " #myDiv"); 

Вот именно, если вы передаете аргумент url selector он будет получать только что элемент из ответа :)