Javascript dialog.options=函数(opts){ var options=opts.split(“;”); var explodedOptions={}; 对于(选项中的var i){ 如果(选项[i]){ //解析并清除选项 var option=Drupal.simpleDialog.cleanpoption(选项[i].split(“:”); explodedOptions[选项[0]]=选项[1]; } } 返料; } //函数来清除选项。 Drupal.simpleDialog.cleanOption=函数(选项){ //如果是位置选项,我们可能需要解析数组 如果(选项[0]=“位置”&&选项[1]。匹配(/\[.*,.\]/){ 选项[1]=选项[1]。匹配(/\[(.*)\]/)[1]。拆分(','); //检查是否需要将位置转换为int 如果(!isNaN(parseInt(选项[1][0])){ 选项[1][0]=parseInt(选项[1][0]); } 如果(!isNaN(parseInt(选项[1][1])){ 选项[1][1]=parseInt(选项[1][1]); } } //将文本布尔表示转换为布尔表示 如果(选项[1]=“true”){ 选项[1]=真; } else if(选项[1]='false'){ 选项[1]=假; } 返回选项; } Drupal.simpleDialog.log=函数(msg){ if(window.console){ window.console.log(msg); } } })(jQuery);
源代码中使用此模块的链接如下所示:Javascript dialog.options=函数(opts){ var options=opts.split(“;”); var explodedOptions={}; 对于(选项中的var i){ 如果(选项[i]){ //解析并清除选项 var option=Drupal.simpleDialog.cleanpoption(选项[i].split(“:”); explodedOptions[选项[0]]=选项[1]; } } 返料; } //函数来清除选项。 Drupal.simpleDialog.cleanOption=函数(选项){ //如果是位置选项,我们可能需要解析数组 如果(选项[0]=“位置”&&选项[1]。匹配(/\[.*,.\]/){ 选项[1]=选项[1]。匹配(/\[(.*)\]/)[1]。拆分(','); //检查是否需要将位置转换为int 如果(!isNaN(parseInt(选项[1][0])){ 选项[1][0]=parseInt(选项[1][0]); } 如果(!isNaN(parseInt(选项[1][1])){ 选项[1][1]=parseInt(选项[1][1]); } } //将文本布尔表示转换为布尔表示 如果(选项[1]=“true”){ 选项[1]=真; } else if(选项[1]='false'){ 选项[1]=假; } 返回选项; } Drupal.simpleDialog.log=函数(msg){ if(window.console){ window.console.log(msg); } } })(jQuery);,javascript,jquery,drupal,jquery-ui-dialog,Javascript,Jquery,Drupal,Jquery Ui Dialog,源代码中使用此模块的链接如下所示: <a href='/user' name='user-login' id='user-login' class='simple-dialog' title='Login ' rel='width:400;resizable:false;position:[center,60]'>Log in</a> 问题是,当你点击该链接时,需要一两秒钟来加载弹出窗口,当它实际加载时,会生成第二组选择下拉列表。若您再次单击登录链接,它将生成第三
<a href='/user' name='user-login' id='user-login' class='simple-dialog' title='Login ' rel='width:400;resizable:false;position:[center,60]'>Log in</a>
问题是,当你点击该链接时,需要一两秒钟来加载弹出窗口,当它实际加载时,会生成第二组选择下拉列表。若您再次单击登录链接,它将生成第三个选择列表。基本上,它复制从ulli转换到select列表的内容
提前谢谢你的帮助 jQuery(文档).ready(函数($){
jQuery(document).ready( function($) {
$(".region-menu-inner nav").empty(); //empty here
//build dropdown - main navigation
$("<select />").appendTo(".region-menu-inner nav");
// Create default option "Go to..."
$("<option />", {
"selected": "selected",
"value" : "",
"text" : "Navigate..."
}).appendTo("nav select");
// Populate dropdowns with the first menu items
$(".region-menu-inner li a").each(function() {
var el = $(this);
$("<option />", {
"value" : el.attr("href"),
"text" : el.text()
}).appendTo(".region-menu-inner select");
});
//make responsive dropdown menu actually work
$(".region-menu-inner select").change(function() {
window.location = $(this).find("option:selected").val();
});
});
$(“.region菜单内部导航”).empty();//此处为空
//构建下拉列表-主导航
$(“”).appendTo(“.region菜单内部导航”);
//创建默认选项“转到…”
$("", {
“已选定”:“已选定”,
“价值”:“,
“文本”:“导航…”
}).附录(“导航选择”);
//使用第一个菜单项填充下拉列表
$(“.region菜单内部li a”)。每个(函数(){
var el=$(本);
$("", {
“值”:el.attr(“href”),
“文本”:el.text()
}).appendTo(“区域菜单内部选择”);
});
//使响应式下拉菜单真正起作用
$(“.region菜单内部选择”).change(函数(){
window.location=$(this.find(“选项:选中”).val();
});
});
在插入新代码之前,请先尝试删除第一个<代码>(“.region菜单内部导航”).empty()代码>@Harry Bomrah它什么都没做。但第二个选择列表会在弹出窗口内容加载后立即出现(即使是在弹出窗口本身加载时),然后您必须向我显示您的代码。如果可以的话,做一把小提琴。上面我忘记了$,它应该是$(“.region-menu-inner-nav”).empty()代码>@Harry Bomrah我应该把它放在哪里?我把它放在答案里,这样你就知道该把它放在哪里了。这行删除了导航中的所有内容,即ul li和select。我需要的是检查select是否存在,如果存在,请在插入新的select之前对其进行emtpy,或者根本不插入它。我是如何做到的?我能够接受你的想法,并稍微改变一下,使之适用于我的案例。它现在按预期工作。谢谢你的建议和帮助
<a href='/user' name='user-login' id='user-login' class='simple-dialog' title='Login ' rel='width:400;resizable:false;position:[center,60]'>Log in</a>
jQuery(document).ready( function($) {
$(".region-menu-inner nav").empty(); //empty here
//build dropdown - main navigation
$("<select />").appendTo(".region-menu-inner nav");
// Create default option "Go to..."
$("<option />", {
"selected": "selected",
"value" : "",
"text" : "Navigate..."
}).appendTo("nav select");
// Populate dropdowns with the first menu items
$(".region-menu-inner li a").each(function() {
var el = $(this);
$("<option />", {
"value" : el.attr("href"),
"text" : el.text()
}).appendTo(".region-menu-inner select");
});
//make responsive dropdown menu actually work
$(".region-menu-inner select").change(function() {
window.location = $(this).find("option:selected").val();
});
});