2014-11-18 6 views
0

Загружаю страницу в div через AJAX. Это отлично работает. На этой загруженной странице ajax есть несколько кнопок (как правило, созданных с помощью javascript). Когда я нажимаю на одну из этих кнопок, страница обновляется. Это странно. нет, где я заявил, что страница ДОЛЖНА обновляться. В конце концов; поэтому я использую ajax.Загруженная страница Ajax обновляется при нажатии кнопки

Это Javascript, который выполняется на AJAX загруженной странице:

function buttonClicked(id){ 
    var page = id; 
    photoPage = page*10; 
    if(cur_button < id) 
    { 
     minCount += 10; 
     maxCount += 10; 
    } 
    else 
    { 
     minCount -= 10; 
     maxCount -= 10; 
    } 
    cur_button = id; 
    jQuery("#imagesDiv").html(""); 
    $("#imagesDiv").append(" <br/>"); 
    executePage(); 
} 
function createButtons() { 
    var i = 1; 
    var button = ""; 
    while(i <= photoCount) 
    { 
     var button = document.createElement("BUTTON"); 
     var buttonName = document.createTextNode(i); 
     button.appendChild(buttonName); 
     button.id = i; 
     jQuery(button).bind('click', { id: i}, function(event) { 
      var data = event.data; 
      buttonClicked(data.id); 
     }); 
     imagesDivJS.appendChild(button); 
     i++; 
    } 
} 
function executePage() 
{ 
    setImagesDivID(); 
    createButtons(); 
    $(ids).append(" <br/>"); 
    populateDiv(); 
} 
    function populateDiv() { 
     for(var i = minCount;i < maxCount; i++) 
     { 
      if(i < total_count) 
      { 
       create_image("../"+photos[i],photoAlts[i]); 
       $("#"+ids).append("<p style=\"display:inline; padding-left:10px;\">" + photoTags[i] + "</p><br/>"); 
      } 
     } 
    } 

Помощь будут оценены. Я ломаю себе голову вокруг этой штуки!

+0

Где ваша функция 'buttonClicked()'? – devqon

+0

Я добавил event.preventDefault() под строку с кнопкойClicked (data.id). Все еще освежающе. То же самое касается возврата false. Когда я набрал event.preve, и он позволил авто завершать, он сказал, что автозаполнение невозможно, другими словами; метод неизвестен (?) – Kraishan

+0

Попробуйте добавить атрибут type = "button" на кнопку –

ответ

1

Кнопка обновляет страницу, потому что это кнопка отправки. Вам нужно добавить атрибут type="button". Например:

function createButtons() { 
    var i = 1; 
    var button = ""; 
    while(i <= photoCount) 
    { 
     var button = document.createElement("BUTTON"); 
     var buttonName = document.createTextNode(i); 
     button.appendChild(buttonName); 
     button.id = i; 

     // Add type="button" 
     button.setAttribute("type", "button"); 

     jQuery(button).bind('click', { id: i}, function(event) { 
      var data = event.data; 
      buttonClicked(data.id); 
     }); 
     imagesDivJS.appendChild(button); 
     i++; 
    } 
} 
+0

Это сработало! Благодаря! Я думал, что тип кнопки по умолчанию ... Будет кнопкой. Спасибо за вашу помощь! – Kraishan

+0

ха-ха, вы так думаете! Просто одна из тех вещей, которые вам нужно найти, –

Смежные вопросы