AJAX 破坏内存数据jquery元素

nx7onnlm  于 2022-12-26  发布在  jQuery
关注(0)|答案(1)|浏览(118)

我有一个脚本,这是隐藏的链接到mp3文件。

<script type="text/javascript">
<!--//--><![CDATA[//><!--
jQuery(document).ready(function($){
    
    $('a.sm2_button').each(function (i, el) {
        var data = jQuery(el).data('song_link') || jQuery(el).data('song_link', undefined);
        if (!data) {
            jQuery(el).data('song_link', el.href);
            el.href = '#'; 
            el.setAttribute('href', '#');

        }

        $(el).bind("contextmenu", function(e) {
        e.preventDefault();
        });

    });
    });
  
//--><!]]>
</script>

我遇到的问题是,在一个 AJAX 调用之后,上面代码的第一部分再次运行,它破坏了在ajax调用之前已经存在的html的“song_link”。当我注解掉上面的代码时,它工作得很好。但是链接不再隐藏了。因此我确信问题出在上面的代码上。显然没有办法调试/查看jquery数据函数为www.example.com的数据元素using.https://stackoverflow.com/questions/65421997/how-to-see-jquerys-data-with-developer-tools
这是一个html页面:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN"
  "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">
  <head profile="http://www.w3.org/1999/xhtml/vocab">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="Generator" content="Drupal 7 (http://drupal.org)" />
    <title>Ajax ruins javascript  | Romanian Lesson</title>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
      <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
      <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
      <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
<style type="text/css" media="all">
@import url(".comthemes/bluemasters/css/inlineplayer.css?rmz8ol");
</style>
<link type="text/css" rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" media="all" />
<style type="text/css" media="all">
@import url(".comthemes/bluemasters/css/style.css?rmz8ol");
</style>

<!--[if (lte IE 8)&(!IEMobile)]>
<link type="text/css" rel="stylesheet" href=".comthemes/bluemasters/css/basic-layout.css?rmz8ol" media="all" />
<![endif]-->

      
      <script type="text/javascript" src=".com/misc/jquery.js?v=1.4.4"></script>
<script type="text/javascript" src=".com/misc/jquery-extend-3.4.0.js?v=1.4.4"></script>
<script type="text/javascript" src=".com/misc/jquery-html-prefilter-3.5.0-backport.js?v=1.4.4"></script>
<script type="text/javascript" src=".com/misc/jquery.once.js?v=1.2"></script>
<script type="text/javascript" src=".com/misc/drupal.js?rmz8ol"></script>
<script type="text/javascript" src=".commodules/eu_cookie_compliance/js/jquery.cookie-1.4.1.min.js?v=1.4.1"></script>
<script type="text/javascript" src=".commodules/comment_notify/comment_notify.js?rmz8ol"></script>
<script type="text/javascript" src=".comthemes/bluemasters/js/soundmanager2-nodebug-jsmin.js?rmz8ol"></script>
<script type="text/javascript" src=".comthemes/bluemasters/js/mp3-player-button.js?rmz8ol"></script>
<script type="text/javascript" src=".comthemes/bluemasters/js/inlineplayer.js?rmz8ol"></script>
<script type="text/javascript">
<!--//--><![CDATA[//><!--
soundManager.setup({  url: 'themes/bluemasters/swf/'});
//--><!]]>
</script>
<script type="text/javascript">
<!--//--><![CDATA[//><!--
jQuery(document).ready(function($){
    
    $('a.sm2_button').each(function (i, el) {
        var data = jQuery(el).data('song_link') || jQuery(el).data('song_link', undefined);
        if (!data) {
            jQuery(el).data('song_link', el.href);
        }
        el.href = '#'; 
        el.setAttribute('href', '#');

        $(el).bind("contextmenu", function(e) {
        e.preventDefault();
        });

    });
    });
  
//--><!]]>
</script>
<script type="text/javascript">
<!--//--><![CDATA[//><!--
jQuery(document).ready(function($){
    // This prevents soundmanager.js from breaking links
    $('a').not('.sm2_button').each(function (i, el) {
    var data = jQuery(el).data('not_mp3') || jQuery(el).data('not_mp3', undefined);
    if (!data) {
    jQuery(el).data('not_mp3', el.href);
    }
    });
    });
//--><!]]>
</script>
<script type="text/javascript" src=".comthemes/bluemasters/js/jquery.mobilemenu.min.js?rmz8ol"></script>
<script type="text/javascript" src=".commodules/captcha/captcha.js?rmz8ol"></script>
<script type="text/javascript" src=".com/misc/textarea.js?v=7.92"></script>
<script type="text/javascript" src=".com/modules/filter/filter.js?rmz8ol"></script>
<script type="text/javascript">
<!--//--><![CDATA[//><!--

function trtables_ajax_load($nid) {
$ajax_div_target="ajax-target-start-learning-"+$nid;
$param="/node/get/ajax/"+$nid;
  jQuery("#"+$ajax_div_target).load($param);
}
//--><!]]>
</script>
<script type="text/javascript">
<!--//--><![CDATA[//><!--
jQuery.extend(Drupal.settings, {"basePath":"\/","pathPrefix":"","setHasJsCookie":0,"bluemasters":{"topoptiontext":"Page selection"},"ajaxPageState":{"theme":"bluemasters","theme_token":"XFjRAgiWyGJUksKw-iC68buWzLjdyMVLp-tqlrLvcuc","js":{"0":1,"sites\/all\/modules\/eu_cookie_compliance\/js\/eu_cookie_compliance.js":1,"1":1,"misc\/jquery.js":1,"misc\/jquery-extend-3.4.0.js":1,"misc\/jquery-html-prefilter-3.5.0-backport.js":1,"misc\/jquery.once.js":1,"misc\/drupal.js":1,"sites\/all\/modules\/eu_cookie_compliance\/js\/jquery.cookie-1.4.1.min.js":1,"sites\/all\/modules\/comment_notify\/comment_notify.js":1,"sites\/all\/themes\/bluemasters\/js\/soundmanager2-nodebug-jsmin.js":1,"sites\/all\/themes\/bluemasters\/js\/mp3-player-button.js":1,"sites\/all\/themes\/bluemasters\/js\/inlineplayer.js":1,"2":1,"3":1,"4":1,"sites\/all\/themes\/bluemasters\/js\/jquery.mobilemenu.min.js":1,"sites\/all\/modules\/captcha\/captcha.js":1,"misc\/textarea.js":1,"modules\/filter\/filter.js":1,"5":1,"6":1},"css":{"modules\/system\/system.base.css":1,"modules\/system\/system.menus.css":1,"modules\/system\/system.messages.css":1,"modules\/system\/system.theme.css":1,"sites\/all\/modules\/comment_notify\/comment_notify.css":1,"modules\/book\/book.css":1,"modules\/comment\/comment.css":1,"modules\/field\/theme\/field.css":1,"modules\/node\/node.css":1,"sites\/all\/modules\/quiz\/quiz.css":1,"modules\/search\/search.css":1,"modules\/user\/user.css":1,"sites\/all\/themes\/bluemasters\/css\/IPA.css":1,"sites\/all\/themes\/bluemasters\/css\/inlineplayer.css":1,"sites\/all\/modules\/ctools\/css\/ctools.css":1,"modules\/locale\/locale.css":1,"sites\/all\/modules\/adsense\/css\/adsense.css":1,"https:\/\/maxcdn.bootstrapcdn.com\/font-awesome\/4.7.0\/css\/font-awesome.min.css":1,"sites\/all\/modules\/eu_cookie_compliance\/css\/eu_cookie_compliance.css":1,"modules\/filter\/filter.css":1,"":1,"public:\/\/ctools\/css\/85760125e0b573c174141d9adf192778.css":1,"sites\/all\/themes\/bluemasters\/css\/960.css":1,"sites\/all\/themes\/bluemasters\/css\/720.css":1,"sites\/all\/themes\/bluemasters\/css\/481759.css":1,"sites\/all\/themes\/bluemasters\/css\/mobile.css":1,"sites\/all\/themes\/bluemasters\/css\/style.css":1,"sites\/all\/themes\/bluemasters\/css\/basic-layout.css":1}},"eu_cookie_compliance":{"cookie_policy_version":"1.0.0","popup_enabled":1,"popup_agreed_enabled":0,"popup_hide_agreed":0,"popup_clicking_confirmation":false,"popup_scrolling_confirmation":false,"popup_html_info":"\u003Cdiv class=\u0022eu-cookie-compliance-banner eu-cookie-compliance-banner-info eu-cookie-compliance-banner--categories\u0022\u003E\n  \u003Cdiv class=\u0022popup-content info\u0022\u003E\n        \u003Cdiv id=\u0022popup-text\u0022\u003E\n      \u003Cp\u003EWe use cookies on this site to enhance your user experience\u003C\/p\u003E\n              \u003Cbutton type=\u0022button\u0022 class=\u0022find-more-button eu-cookie-compliance-more-button\u0022\u003EGive me more info\u003C\/button\u003E\n          \u003C\/div\u003E\n          \u003Cdiv id=\u0022eu-cookie-compliance-categories\u0022 class=\u0022eu-cookie-compliance-categories\u0022\u003E\n                  \u003Cdiv class=\u0022eu-cookie-compliance-category\u0022\u003E\n            \u003Cdiv\u003E\n              \u003Cinput type=\u0022checkbox\u0022 name=\u0022cookie-categories\u0022 id=\u0022cookie-category-necessary\u0022\n                     value=\u0022necessary\u0022\n                     checked                     disabled \u003E\n              \u003Clabel for=\u0022cookie-category-necessary\u0022\u003ENecessary (normal website functioning)\u003C\/label\u003E\n            \u003C\/div\u003E\n                      \u003Cdiv class=\u0022eu-cookie-compliance-category-description\u0022\u003E\u003C\/div\u003E\n                  \u003C\/div\u003E\n                  \u003Cdiv class=\u0022eu-cookie-compliance-category\u0022\u003E\n            \u003Cdiv\u003E\n              \u003Cinput type=\u0022checkbox\u0022 name=\u0022cookie-categories\u0022 id=\u0022cookie-category-advertising\u0022\n                     value=\u0022advertising\u0022\n                                           \u003E\n              \u003Clabel for=\u0022cookie-category-advertising\u0022\u003EPersonalized advertisements\u003C\/label\u003E\n            \u003C\/div\u003E\n                      \u003Cdiv class=\u0022eu-cookie-compliance-category-description\u0022\u003E\u003C\/div\u003E\n                  \u003C\/div\u003E\n                          \u003Cdiv class=\u0022eu-cookie-compliance-categories-buttons\u0022\u003E\n            \u003Cbutton type=\u0022button\u0022\n                    class=\u0022eu-cookie-compliance-save-preferences-button\u0022\u003ESave preferences\u003C\/button\u003E\n          \u003C\/div\u003E\n              \u003C\/div\u003E\n    \n    \u003Cdiv id=\u0022popup-buttons\u0022 class=\u0022eu-cookie-compliance-has-categories\u0022\u003E\n            \u003Cbutton type=\u0022button\u0022 class=\u0022agree-button eu-cookie-compliance-default-button\u0022\u003EAccept all cookies\u003C\/button\u003E\n          \u003C\/div\u003E\n  \u003C\/div\u003E\n\u003C\/div\u003E","use_mobile_message":false,"mobile_popup_html_info":"\u003Cdiv class=\u0022eu-cookie-compliance-banner eu-cookie-compliance-banner-info eu-cookie-compliance-banner--categories\u0022\u003E\n  \u003Cdiv class=\u0022popup-content info\u0022\u003E\n        \u003Cdiv id=\u0022popup-text\u0022\u003E\n                    \u003Cbutton type=\u0022button\u0022 class=\u0022find-more-button eu-cookie-compliance-more-button\u0022\u003EGive me more info\u003C\/button\u003E\n          \u003C\/div\u003E\n          \u003Cdiv id=\u0022eu-cookie-compliance-categories\u0022 class=\u0022eu-cookie-compliance-categories\u0022\u003E\n                  \u003Cdiv class=\u0022eu-cookie-compliance-category\u0022\u003E\n            \u003Cdiv\u003E\n              \u003Cinput type=\u0022checkbox\u0022 name=\u0022cookie-categories\u0022 id=\u0022cookie-category-necessary\u0022\n                     value=\u0022necessary\u0022\n                     checked                     disabled \u003E\n              \u003Clabel for=\u0022cookie-category-necessary\u0022\u003ENecessary (normal website functioning)\u003C\/label\u003E\n            \u003C\/div\u003E\n                      \u003Cdiv class=\u0022eu-cookie-compliance-category-description\u0022\u003E\u003C\/div\u003E\n                  \u003C\/div\u003E\n                  \u003Cdiv class=\u0022eu-cookie-compliance-category\u0022\u003E\n            \u003Cdiv\u003E\n              \u003Cinput type=\u0022checkbox\u0022 name=\u0022cookie-categories\u0022 id=\u0022cookie-category-advertising\u0022\n                     value=\u0022advertising\u0022\n                                           \u003E\n              \u003Clabel for=\u0022cookie-category-advertising\u0022\u003EPersonalized advertisements\u003C\/label\u003E\n            \u003C\/div\u003E\n                      \u003Cdiv class=\u0022eu-cookie-compliance-category-description\u0022\u003E\u003C\/div\u003E\n                  \u003C\/div\u003E\n                          \u003Cdiv class=\u0022eu-cookie-compliance-categories-buttons\u0022\u003E\n            \u003Cbutton type=\u0022button\u0022\n                    class=\u0022eu-cookie-compliance-save-preferences-button\u0022\u003ESave preferences\u003C\/button\u003E\n          \u003C\/div\u003E\n              \u003C\/div\u003E\n    \n    \u003Cdiv id=\u0022popup-buttons\u0022 class=\u0022eu-cookie-compliance-has-categories\u0022\u003E\n            \u003Cbutton type=\u0022button\u0022 class=\u0022agree-button eu-cookie-compliance-default-button\u0022\u003EAccept all cookies\u003C\/button\u003E\n          \u003C\/div\u003E\n  \u003C\/div\u003E\n\u003C\/div\u003E\n","mobile_breakpoint":"768","popup_html_agreed":"\u003Cdiv\u003E\n  \u003Cdiv class=\u0022popup-content agreed\u0022\u003E\n    \u003Cdiv id=\u0022popup-text\u0022\u003E\n      \u003Cp\u003EThank you for accepting cookiesYou can now hide this message or find out more about cookies.\u003C\/p\u003E\n    \u003C\/div\u003E\n    \u003Cdiv id=\u0022popup-buttons\u0022\u003E\n      \u003Cbutton type=\u0022button\u0022 class=\u0022hide-popup-button eu-cookie-compliance-hide-button\u0022\u003EHide\u003C\/button\u003E\n              \u003Cbutton type=\u0022button\u0022 class=\u0022find-more-button eu-cookie-compliance-more-button-thank-you\u0022 \u003EMore info\u003C\/button\u003E\n          \u003C\/div\u003E\n  \u003C\/div\u003E\n\u003C\/div\u003E","popup_use_bare_css":false,"popup_height":"auto","popup_width":"100%","popup_delay":1000,"popup_link":"\/privacy","popup_link_new_window":1,"popup_position":null,"fixed_top_position":false,"popup_language":"en","store_consent":true,"better_support_for_screen_readers":0,"reload_page":0,"domain":"","domain_all_sites":0,"popup_eu_only_js":1,"cookie_lifetime":"100","cookie_session":false,"disagree_do_not_show_popup":0,"method":"categories","allowed_cookies":"","withdraw_markup":"\u003Cbutton type=\u0022button\u0022 class=\u0022eu-cookie-withdraw-tab\u0022\u003E\u003C\/button\u003E\n\u003Cdiv class=\u0022eu-cookie-withdraw-banner\u0022\u003E\n  \u003Cdiv class=\u0022popup-content info\u0022\u003E\n    \u003Cdiv id=\u0022popup-text\u0022\u003E\n          \u003C\/div\u003E\n    \u003Cdiv id=\u0022popup-buttons\u0022\u003E\n      \u003Cbutton type=\u0022button\u0022 class=\u0022eu-cookie-withdraw-button\u0022\u003E\u003C\/button\u003E\n    \u003C\/div\u003E\n  \u003C\/div\u003E\n\u003C\/div\u003E\n","withdraw_enabled":false,"withdraw_button_on_info_popup":0,"cookie_categories":["necessary","advertising"],"cookie_categories_details":{"necessary":{"weight":0,"machine_name":"necessary","label":"Necessary (normal website functioning)","description":"","checkbox_default_state":"required"},"advertising":{"weight":0,"machine_name":"advertising","label":"Personalized advertisements","description":"","checkbox_default_state":"unchecked"}},"enable_save_preferences_button":1,"cookie_name":"","cookie_value_disagreed":"0","cookie_value_agreed_show_thank_you":"1","cookie_value_agreed":"2","containing_element":"body","automatic_cookies_removal":1,"close_button_action":"close_banner"},"wysiwyg":{"triggers":{"edit-comment-body-und-0-value":{"field":"edit-comment-body-und-0-value","resizable":1,"activeFormat":"plain_text"}}},"urlIsAjaxTrusted":{"\/comment\/reply\/5801":true}});
//--><!]]>
</script>
  </head>
  <body class="html not-front not-logged-in no-sidebars page-node page-node- page-node-5801 node-type-book i18n-en" >
        <div id="page">
  
          

        </div>
    </div>
    <!--EOF:header-top-->

    <div id="wrapper">

        
        <div class="container_12">
            <div class="grid_12">
                <div id="main-area" class="clearfix">
                
                    <div id="main-area-inside" class="clearfix">
                                                                                <div class="grid_12 alpha omega">    
                        
                            <div id="main"  class="inside clearfix">

                                                           
                                                         
                                                                
                                                                
                                
                                                   
                                  <div class="region region-content">
    <div id="block-system-main" class="block block-system">

<div class="content">

<div id="node-5801" class="node node-book" about="/node/5801" typeof="sioc:Item foaf:Document">

 
  <div class="content clearfix">
    <div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"><table class="mp3table">
                                <tr>
                                <th>English</th>
                                <th>Romanian<br>translation</th>
                                <th>Audio</th>
                                </tr><tr class='odd'><td><p>I&#39;m not Romanian (male)</p></td><td><p>Eu nu sunt român</p></td><td><A class="sm2_button no_dl" href="/sites/default/files/Lessons/0.4/eu_nu_sunt_roman.mp3"></A></td></tr><tr class='even'><td><p>I&#39;m not Romanian (female)</p></td><td><p>Eu nu sunt româncă</p></td><td><A class="sm2_button no_dl" href="/sites/default/files/Lessons/0.4/eu_nu_sunt_romanca.mp3"></A></td></tr></table>    <a id="id-start-learning-611"></a>
    <div class="learning-panel">
        <button class="btn btn-success btn-blue" type="button" style="color: yellow; width: 100%;" data-toggle="collapse" data-target="#start-learning-611" aria-expanded="true" aria-controls="start-learning-611">
          <i class="fa" aria-hidden="true"></i>
          <img style="margin:10px 0px;padding:0px;" width="30px"    height="30px" title="Multiple choice Romanian language exercises"src=themes/bluemasters/images/icons/mcq.png>&nbsp;<img style="margin:10px 0px;padding:0px;" width="30px"   height="30px" title="Multiple choice Romanian language listening exercises" src=themes/bluemasters/images/icons/listen.png>&nbsp;<img style="margin:10px 0px;padding:0px;" width="30px" height="30px" title="Listening and writing Romanian language exercises" src=themes/bluemasters/images/icons/w_h.jpg>&nbsp;Start learning&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
         </button>
      <div class="in collapse show" id="start-learning-611">
        <div class="container-fluid center">
          <div class="row btn-blue">
            <div class="level1 col"><div class="blue vertically-center-text"><a class="btn" href="#id-start-learning-611" onclick="trtables_ajax_load('611,')">1 <img style="margin:10px 0px;padding:0px;" width="30px" height="30px" title="Multiple choice Romanian language exercises"src=themes/bluemasters/images/icons/mcq.png></a> <span class="lro-progress">0/2</span></div></div>
            
            <div class="level1 col">2 Listening
              <div class="row" style="margin: 7px;">
                <div class="col line-height50 no-border-right blue"><div class="vertically-center-text"><a class="btn" href="#id-start-learning-611" onclick="trtables_ajax_load('611,p')">2.1 <img style="margin:10px 0px;padding:0px;" width="30px"   height="30px" title="Multiple choice Romanian language listening exercises" src=themes/bluemasters/images/icons/listen.png></a> <span class="lro-progress">0/2</span></div></div>
                <div class="col line-height50 blue"><a class="btn" href="#id-start-learning-611" onclick="trtables_ajax_load('611,tp')">2.2 <img style="margin:10px 0px;padding:0px;" width="30px"  height="30px" title="Listening and writing Romanian language exercises" src=themes/bluemasters/images/icons/w_h.jpg></a> <span class="lro-progress">0/2</span></div>
              </div>
            </div><!-- /.level1 -->
            <div class="level1 col">
              3 Translate
              <div class="row" style="margin: 7px;">
                <div class="col line-height50 no-border-right blue"><a class="btn" href="#id-start-learning-611" onclick="trtables_ajax_load('611,trofl')">3.1 <img class="language-icon" typeof="foaf:Image" src="modules/languageicons/flags/ro.png" style="margin:0px;width:26px;height:20px;max-width:100px;"> <img class="language-icon" typeof="foaf:Image" src=modules/languageicons/flags/en.png style="margin:0px;width:26px;height:20px;max-width:100px;"></a> <span class="lro-progress">0/2</span></div>
                <div class="col line-height50 blue"><a class="btn" href="#id-start-learning-611" onclick="trtables_ajax_load('611,tflro')">3.2 <img class="language-icon" typeof="foaf:Image" src=modules/languageicons/flags/en.png style="margin:0px;width:26px;height:20px;max-width:100px;"> <img class="language-icon" typeof="foaf:Image" src="modules/languageicons/flags/ro.png" style="margin:0px;width:26px;height:20px;max-width:100px;"></a> <span class="lro-progress">0/2</span></div>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
    <div id="ajax-target-start-learning-611"></div></p>
</div></div></div>  </div>

  </body>
</html>

AJAX 带来的html页面,因此这是ajax的回复是:

<html><head><title></title>
<style type="text/css" media="all">
@import url(".comthemes/bluemasters/css/inlineplayer.css?rmz8ol");
@import url(".commodules/ctools/css/ctools.css?rmz8ol");
</style>
<style type="text/css" media="all">
@import url(".comthemes/bluemasters/css/style.css?rmz8ol");
</style>
<script type="text/javascript" src=".com/misc/jquery.js?v=1.4.4"></script>
<script type="text/javascript" src=".com/misc/jquery-extend-3.4.0.js?v=1.4.4"></script>
<script type="text/javascript" src=".com/misc/jquery-html-prefilter-3.5.0-backport.js?v=1.4.4"></script>
<script type="text/javascript" src=".com/misc/jquery.once.js?v=1.2"></script>
<script type="text/javascript" src=".com/misc/drupal.js?rmz8ol"></script>
<script type="text/javascript" src=".commodules/eu_cookie_compliance/js/jquery.cookie-1.4.1.min.js?v=1.4.1"></script>
<script type="text/javascript" src=".com/misc/jquery.form.js?v=2.52"></script>
<script type="text/javascript" src=".com/misc/ajax.js?v=7.92"></script>
<script type="text/javascript" src=".commodules/jquery_update/js/jquery_update.js?v=0.0.1"></script>
<script type="text/javascript" src=".commodules/comment_notify/comment_notify.js?rmz8ol"></script>
<script type="text/javascript" src=".comthemes/bluemasters/js/soundmanager2-nodebug-jsmin.js?rmz8ol"></script>
<script type="text/javascript" src=".comthemes/bluemasters/js/mp3-player-button.js?rmz8ol"></script>
<script type="text/javascript" src=".comthemes/bluemasters/js/inlineplayer.js?rmz8ol"></script>
<script type="text/javascript">
<!--//--><![CDATA[//><!--
soundManager.setup({  url: 'themes/bluemasters/swf/'});
//--><!]]>
</script>
<script type="text/javascript">
<!--//--><![CDATA[//><!--
jQuery(document).ready(function($){
    
    $('a.sm2_button').each(function (i, el) {
        var data = jQuery(el).data('song_link') || jQuery(el).data('song_link', undefined);
        if (!data) {
            jQuery(el).data('song_link', el.href);
        }
        el.href = '#'; 
        el.setAttribute('href', '#');

        $(el).bind("contextmenu", function(e) {
        e.preventDefault();
        });

    });
    });
  
//--><!]]>
</script>
<script type="text/javascript">
<!--//--><![CDATA[//><!--
jQuery(document).ready(function($){
    // This prevents soundmanager.js from breaking links
    $('a').not('.sm2_button').each(function (i, el) {
    var data = jQuery(el).data('not_mp3') || jQuery(el).data('not_mp3', undefined);
    if (!data) {
    jQuery(el).data('not_mp3', el.href);
    }
    });
    });
//--><!]]>
</script>
<script type="text/javascript" src=".comthemes/bluemasters/js/jquery.mobilemenu.min.js?rmz8ol"></script>
<script type="text/javascript" src=".commodules/trtable_quiz/trtable_quiz.js?rmz8ol"></script>
<script type="text/javascript" src=".com/misc/progress.js?v=7.92"></script>
<script type="text/javascript">
<!--//--><![CDATA[//><!--
jQuery.extend(Drupal.settings, {"basePath":"\/","pathPrefix":"","setHasJsCookie":0,"bluemasters":{"topoptiontext":"Page selection"},"ajaxPageState":{"theme":"bluemasters","theme_token":"XFjRAgiWyGJUksKw-iC68buWzLjdyMVLp-tqlrLvcuc","jquery_version":"default","css":{"modules\/system\/system.base.css":1,"modules\/system\/system.menus.css":1,"modules\/system\/system.messages.css":1,"modules\/system\/system.theme.css":1,"sites\/all\/modules\/comment_notify\/comment_notify.css":1,"modules\/book\/book.css":1,"modules\/comment\/comment.css":1,"modules\/field\/theme\/field.css":1,"modules\/node\/node.css":1,"sites\/all\/modules\/quiz\/quiz.css":1,"modules\/search\/search.css":1,"modules\/user\/user.css":1,"sites\/all\/themes\/bluemasters\/css\/IPA.css":1,"sites\/all\/themes\/bluemasters\/css\/inlineplayer.css":1,"sites\/all\/modules\/ctools\/css\/ctools.css":1,"":1,"sites\/all\/themes\/bluemasters\/css\/960.css":1,"sites\/all\/themes\/bluemasters\/css\/720.css":1,"sites\/all\/themes\/bluemasters\/css\/481759.css":1,"sites\/all\/themes\/bluemasters\/css\/mobile.css":1,"sites\/all\/themes\/bluemasters\/css\/style.css":1},"js":{"misc\/jquery.js":1,"misc\/jquery-extend-3.4.0.js":1,"misc\/jquery-html-prefilter-3.5.0-backport.js":1,"misc\/jquery.once.js":1,"misc\/drupal.js":1,"sites\/all\/modules\/eu_cookie_compliance\/js\/jquery.cookie-1.4.1.min.js":1,"misc\/jquery.form.js":1,"misc\/ajax.js":1,"sites\/all\/modules\/jquery_update\/js\/jquery_update.js":1,"sites\/all\/modules\/comment_notify\/comment_notify.js":1,"sites\/all\/themes\/bluemasters\/js\/soundmanager2-nodebug-jsmin.js":1,"sites\/all\/themes\/bluemasters\/js\/mp3-player-button.js":1,"sites\/all\/themes\/bluemasters\/js\/inlineplayer.js":1,"0":1,"1":1,"2":1,"sites\/all\/themes\/bluemasters\/js\/jquery.mobilemenu.min.js":1,"sites\/all\/modules\/trtable_quiz\/trtable_quiz.js":1,"misc\/progress.js":1}},"ajax":{"edit-check":{"wrapper":"trtable_quiz_multistep_form882","callback":"trtable_quiz_multistep_form_ajax_callback","effect":"fade","event":"click","url":"\/system\/ajax","submit":{"_triggering_element_name":"op","_triggering_element_value":"Check"}}},"urlIsAjaxTrusted":{"\/system\/ajax":true,"\/node\/get\/ajax\/611,":true}});
//--><!]]>
</script>
</head><body class="jquery-ajax-load"><form action="/node/get/ajax/611," method="post" id="trtable-quiz-multistep-form" accept-charset="UTF-8"><div><input type="hidden" name="form_build_id" value="form-gJCwC0aoS9T_Hj_ubOnVTLK8dCyToMvSbKFkXfyw5NU" />
<input type="hidden" name="form_id" value="trtable_quiz_multistep_form" />
<input type="hidden" name="honeypot_time" value="1671191916|IzeBmhlVRv-taaRUWd2p-bFWOUfiMoTEJO12hb_xz_I" />
<div id="trtable_quiz_multistep_form882"><div class="trtable-quiz form-wrapper" id="edit-quiz"><p>Question 1 / 2</p><h4>What is the correct translation for:</h4><em style="color:blue;"><p>I&#39;m not Romanian (female)</p></em><ul class="exercise_ul"><div id="edit-question-0" class="form-radios"><div class="form-item form-type-radio form-item-question-0">
 <input placeholder="" onBlur="lasttext=this;" onkeypress="if(event.keyCode==13){event.preventDefault();document.querySelector(&quot;#trtable_quiz_multistep_form882 input.trtable-quiz-forward-button&quot;).click();}" lang="ro" autocorrect="off" spellcheck="false" autocomplete="off" autocapitalize="off" type="radio" id="edit-question-0-1" name="question_0" value="1" class="form-radio" />  <label class="option" for="edit-question-0-1"><a class="sm2_link no_dl" href="/sites/default/files/Lessons/0.4/eu_nu_sunt_romanca.mp3">Eu nu sunt româncă</a> </label>

</div>
<div class="form-item form-type-radio form-item-question-0">
 <input placeholder="" onBlur="lasttext=this;" onkeypress="if(event.keyCode==13){event.preventDefault();document.querySelector(&quot;#trtable_quiz_multistep_form882 input.trtable-quiz-forward-button&quot;).click();}" lang="ro" autocorrect="off" spellcheck="false" autocomplete="off" autocapitalize="off" type="radio" id="edit-question-0-0" name="question_0" value="0" class="form-radio" />  <label class="option" for="edit-question-0-0"><a class="sm2_link no_dl" href="/sites/default/files/Lessons/0.4/eu_nu_sunt_roman.mp3">Eu nu sunt român</a> </label>

</div>
</div></ul><div id="quiz-message882"></div><div id="edit-buttons" class="form-wrapper"><input class="next_button next_button1 trtable-quiz-forward-button form-submit" style="display: none" type="submit" id="edit-check" name="op" value="Check" /></div></div></div><div class="url-textfield"><div class="form-item form-type-textfield form-item-url">
  <label for="edit-url">Leave this field blank </label>
 <input autocomplete="off" type="text" id="edit-url" name="url" value="" size="20" maxlength="128" class="form-text" />
</div>
</div></div></form></body></html>

如何防止 AJAX 触发的第二次运行破坏'song_link' jquery数据元素?
同样的代码需要为两个fin第一次运行,当页面加载,这是现在的工作和第二次运行时, AJAX 被触发. P.S.在情况下,它更容易:我的测试地点在这里:http://test2.learnro.com/node/5801

wz1wpwve

wz1wpwve1#

首先,非常感谢您的建设性回答。根据您的反馈,我找到了以下解决方案:

<!--//--><![CDATA[//><!--
jQuery(document).ready(function($){
    
    $('a.sm2_button').each(function (i, el) {
        var data = jQuery(el).data('song_link') || jQuery(el).data('song_link', undefined);
        if (!el.song_link) {
            el.song_link=el.href;
            el.href = '#'; 
            el.setAttribute('href', '#');
        }

        $(el).bind("contextmenu", function(e) {
        e.preventDefault();
        });

    });
    });
  
//--><!]]>
</script>

我已经改编了其他脚本,以及,这是用来播放的mp3。
因此,我基本上用el的一个新属性替换了jQuery数据函数。
再次感谢!

相关问题