JQuery AJAX в JavaScript - PullRequest
       2

JQuery AJAX в JavaScript

1 голос
/ 29 августа 2011

пример кода ссылки сайта нажмите: http://www.smyrnart.com/deeplinking/index.html

   <script type="text/javascript">
jQuery(document).ready(function() {
    $('a').click(function(event) { event.preventDefault();});
    $('a').click(function(event) {
        event.preventDefault(); 
        $.ajax({      
         url: 'index2.html',       
         success: function(data){          
         $('#yourDiv').html(data);       
         }    
        }); 
    }); 
}); 
    </script>


<a title="" href="javascript:;">Click 5 times. Alert reload</a>
<div id="yourDiv" style="margin-top:50px;"></div>

AJAX index2.html

<script type="text/javascript">
$('a').click(function() {
    alert('CLICK X 2')
});
</script>

Ответы [ 5 ]

1 голос
/ 29 августа 2011

РЕШИТЬ !!!

jQuery.js версия 1.3.6;

// Evalulates a script in a global context
globalEval: function( data ) {
    if ( data && /\S/.test(data) ) {
        // Inspired by code by Andrea Giammarchi
        // http://webreflection.blogspot.com/2007/08/global-scope-evaluation-and-dom.html
        var head = document.getElementsByTagName("head")[0] || document.documentElement,
            script = document.createElement("script");

        script.type = "text/javascript";
        if ( jQuery.support.scriptEval )
            script.appendChild( document.createTextNode( data ) );
        else
            script.text = data;

        // Use insertBefore instead of appendChild  to circumvent an IE6 bug.
        // This arises when a base node is used (#2709).
        head.insertBefore( script, head.firstChild );
        head.removeChild( script );
        **$(head+"script:last").remove();** 
    }
},
0 голосов
/ 29 августа 2011

Здесь ... Я изменил ваш код:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>STACKOVERFLOW - jQuery Click 5 then AJAX Load Something</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
</head>
<body>
<a href="index2.html">Click 5 times. Alert reload</a>

<div id="yourDiv" style="margin-top:50px;"></div>
<!-- JS SCRIPTS-->
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
    i = 0; // Initialize Click Counter "i"
    $('a').click(function(event) {
        event.preventDefault(); // Prevent link from forwarding to page

        // Checks if link was clicked 5 times
        if(i == 5){
            $.ajax({      
             url: 'index2.html',       
             success: function(data){          
             $('#yourDiv').html(data);       
             }    
            });
        } else {
            i++; // ELSE: Increment Click Counter "i"
        }

    }); 
}); 
</script>
<!-- [end] JS SCRIPTS (Before Body Tag Closure)-->
</body>
</html>

Я также вставил это в Pastebin, чтобы вы могли взять это: http://pastebin.com/zhUHRKrd

0 голосов
/ 29 августа 2011

Я думаю, что его проблема в повторении кода.Вы можете видеть, что всплывающее окно увеличивается все время.Материал мне нужно сбросить функции перехода.устраняет такие проблемы.

0 голосов
/ 29 августа 2011

Я предполагаю, что вы хотите ajax в данных страницы по ссылке и сбросить их в div.Если вы просто хотите сделать это, вы можете просто использовать функцию $ .load.

$('#ajaxLinks a').click(function(event){
   event.preventDefault();
   var $link = $(this).attr('href');
   $('#yourDiv').load($link);
});

или если вы хотите сделать это через функцию $ .ajax ...

$('#ajaxLinks a').click(function(event){
   event.preventDefault();
   var $link = $(this).attr('href');
   $.ajax({
      url: $link,
      success: function(data){
         $('#yourDiv').html(data);
      }
   });
});

Если вы используете метод $ .ajax (), вы также можете связать методы успеха и ошибок, например, так ...

$.ajax({url:'link.html'})
   .success(function() { /* DO SOMETHING ON SUCCESS */ })
   .error(function() { /* DO SOMETHING ON ERROR */ })

Добавлена ​​функция события -> " protectDefault ()"см. выше и в примечаниях ...

0 голосов
/ 29 августа 2011

Вы должны заключить script в index2.html в тег <script>, чтобы jQuery знал, что это скрипт, и его необходимо проанализировать перед установкой в ​​html.

<script type="text/javascript">
   $.address.unbind('change').bind('change', function(e) {     alert('problem') }); 
</script>
...