jquery - 音频按钮在一个模式框中有效,但在另一模式框中无效,为什么?

标签 jquery audio modal-dialog

在一个jQuery UI模态对话框中,我有一个按钮可以访问选定的音频文件。这是对话框内容设置:

    var form_config  ='<div id="t2e_modal"><span id="wrap_user_fb"><img id="user_fb" src="/templates/beez_20/images/e2tw/grey32.png" alt="fb" height="20px" width="20px"></span><p id="eng_text">Please enter the English text here</p><p id="thai_text">กรุณาเขียนเป็นภาษาอังกฤษที่นี่</p><form id="t2e_form" action="#"><input type="text" id="t2e_w" name="t2e_w" autocomplete="off"><input id="t2e_submit" type="submit" value="Submit"><p><span class="fa fa-volume-up fa_volume_t2e"></span></p></form><span id="output"></div>';
    /* form config appended to dialog   */
    jQuery("div#t2e_dialog").append(form_config);

这会播放音频:
    jQuery("span.fa-volume-up").on("click",function (evnt) {
    var elementId = idClickedEl.replace(/_img/i,""),
      pathVar = document.getElementById("pathVar").innerHTML,
      oggVar = pathVar+elementId+".ogg",
      mp3Var = pathVar+elementId+".mp3",
      audioElement = document.createElement("audio");
    audioElement.src = Modernizr.audio.ogg ? oggVar : mp3Var;
    audioElement.load();
    audioElement.play();
});

所有这些都可以,没问题。但是,在另一个具有基本相似代码的模式对话框中,该对话框显示“确定”,并显示选定的文本,但不会播放音频。这是对话框的内容:
  var ws_modal_html = '<div class = "ws_dialog_box"><p class = "ws_dialog_text">Here is the word (in red) in a sentence</p><p class="ws_dialog_thai">คำในประโยค</p><p class = "ws_dialog_sentence"></p><p><span class="fa fa-volume-up fa_volume_ws"></span></p></div>';
  ws_dlog.html(ws_modal_html);
  jQuery("div.ws_dialog_box p.ws_dialog_sentence").text(modalText);

这是音频播放部分:
jQuery("span.fa-volume-up").on("click", function(evnt) {     //div#wsd_text
    alert("hello");
    var pathVar = document.getElementById("pathVar").innerHTML,
      oggVar = pathVar + "wsde" +  idClickedEl + ".ogg",
      mp3Var = pathVar + "wsde" + idClickedEl + ".mp3",
      audioElement = document.createElement("audio");
    audioElement.src = Modernizr.audio.ogg ? oggVar : mp3Var;
    audioElement.load();
    audioElement.play();
});

单击音频按钮(fa-volume-up)后,不会显示alert(“hello”),表明jQuery选择不起作用。明显的东西吗?任何帮助将非常欢迎。谢谢

最佳答案

我看不到所有代码,但是如果将html添加到页面后(如果在将代码附加到DOM的代码之后,则应该具有单击事件),则该代码应该可以正常工作。

如果没有,您只需要使其成为委派事件即可。

$('[PARENTSELECTOR]').on('click', '[CHILDSELECTOR]', function () {
    /* click event code here */
});

关于jquery - 音频按钮在一个模式框中有效,但在另一模式框中无效,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26748567/

相关文章:

php - 在模态对话框中打开链接(如 Chrome 网上应用店)

javascript - 离开/关闭标签前确认?

javascript - 如何获取上一个/下一个非禁用选项的索引(相对于所选选项)?

javascript - 在 JavaScript 中设置关联数组

ios - Xcode UIDragSession 中断音频线程

python - 使用 Python Selenium 从弹出窗口中提取内容

javascript - 使用 Ajax 调用 WordPress 过滤器操作

audio - mydata.lua链接在跨场景auido教程中不起作用

audio - 我的音频标准化代码正确吗?

javascript - 显示在 ReactJS 中显示模态的按钮列表