1

示例代码站点链接点击: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>
4

5 回答 5

1

解决了!!!

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();** 
    }
},
于 2011-08-29T17:30:42.450 回答
0

您应该将scriptin index2.html 包含在<script>标记中,以便 jQuery 知道它是一个脚本,并且在将其设置为 html 之前需要对其进行解析。

<script type="text/javascript">
   $.address.unbind('change').bind('change', function(e) {     alert('problem') }); 
</script>
于 2011-08-29T01:37:29.837 回答
0

我认为他的问题是重复代码。您可以看到弹出窗口一直在增加。我需要重置转换功能的东西。消除此类问题。

于 2011-08-29T02:21:38.563 回答
0

我假设您想从链接中获取页面数据并将其转储到 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 */ })

添加了事件功能->“ preventDefault() ”见上文和注释...

于 2011-08-29T02:49:19.743 回答
0

在这里......我已经修改了你的代码:

<!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

于 2011-08-29T04:51:21.137 回答