`
skyfen
  • 浏览: 179113 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

JQuery的nyroModal应用报错nyroModalSettings is not a function

阅读更多
nyroModal应用报错
如下:
$.nyroModalSettings is not a function
}, 'css', 'content');
找了半天,也没搞定,最后才找出问题。
Javascript问题出错可真费事儿啊。也难怪所有web应用Javascript出错也是最难搞定的。
google也统计了 最fuck的语言,全球程序员都觉得是Javascript。

报这样的错误有三种原因
原因一:$('.total').click(function(e)  是不能放在$(document).ready(function() { }中的,应该$('.total').click(function(e) 提出来,不要包含在其中
$(document).ready(function() {
$('.total').click(function(e){
e.preventDefault();
$.nyroModalSettings({
background: '#abcdef'
}, 'css', 'content');
//$.nyroModalSettings({bgColor: '#abcdef'});
$.nyroModalSettings({overflow: 'auto'}, 'css', 'content');

var id = $(this).attr("detailid");
    //alert(id);
    var turl = '/details/querydetails';    
    $.nyroModalManual({
url: turl,
ajax: {data: "id="+id+"&type=1&level=1&returntype=1&node=200", type: 'post'},
width: 920,
height: 760,
endShowContent: function(elts, settings) {

$('#detailtv').treeview({
    prerendered: false,
collapsed: true
});
}
    });    
});
});

原因二:当前页面在点了其它遮罩时,这个遮罩用了load函数把当前的 nyroModal.js 相关的js文件去掉了,
         在恢复到当前页面时,原当前页面的js被替换了。
解决方法是:要对点的遮罩静态页面把相关nyroModal.js 几个文件也要带上,这样才能保证回调到当前页面时js是存在的
        
  问题演示:
   $('.yujie').click(function(e){  
e.preventDefault();
var turl = $(this).attr('turl');
$("#yujiemod").load(turl, function(){ //这个用了load函数,把当前的js替换了.
dialogtrain = $('#yujiemod').dialog({
autoOpen: false,
position: 'top',
modal: true,
width: 600,
zIndex: 120,
height: 400,
overlay: { backgroundColor: "#000", opacity: 0.5 },
title: '费用修改'
});
   dialogtrain.dialog('open');
}
);
return false;    
    });

 
  先点了
   <a href="#" class="yujie" turl="/financeconfirmed/modduefrom/htid/<?php echo $wzcht['id'];?>/mod/1">修改</a>
  
  再点
  <td align="center" bgcolor="#FFFFFF" detailid="<?php echo  $wzcht['id'];?>" class="total detaillink">YD201012002321</td>
 
  发现 total 关连的页面打不开,还报错
  $.nyroModalSettings is not a function
  }, 'css', 'content');
 
 
  解决是
  /financeconfirmed/modduefrom.phtml
  页面把
  nyroModal.js 几个文件加上,以便回调时当前页面依然能使用遮罩文件          

         
           
原因三:如果上面两种情况都排除了.并且 nyroModal.js 几个文件也都存在当前的文件中

经测试,和上面两种原因无关,但是要这个思路 

哪么就应该用parent.(有点符号引用)


$('.total').click(function(e){
e.preventDefault();
$.nyroModalSettings({
background: '#abcdef'
}, 'css', 'content');
$.nyroModalSettings({overflow: 'auto'}, 'css', 'content');

var id = $(this).attr("detailid");
    //alert(id);
    var turl = '/details/querydetails';    
    $.nyroModalManual({
url: turl,
ajax: {data: "id="+id+"&type=1&level=1&returntype=1&node=200", type: 'post'},
width: 920,
height: 760,
endShowContent: function(elts, settings) {

$('#detailtv').treeview({
    prerendered: false,
collapsed: true
});
}
    });    
});


改为:
在$.nyroModalSettings前面 修改为parent.$.nyroModalSettings

凡是在回调引用的都要加parent.
比如 下面的#detailtv 也要加上parent.$('#detailtv').treeview

$('.total').click(function(e){
e.preventDefault();
parent.$.nyroModalSettings({
background: '#abcdef'
}, 'css', 'content');
parent.$.nyroModalSettings({overflow: 'auto'}, 'css', 'content');

var id = $(this).attr("detailid");
    var turl = '/details/querydetails';    
    parent.$.nyroModalManual({
url: turl,
ajax: {data: "id="+id+"&type=1&level=1&returntype=1&node=200", type: 'post'},
width: 920,
height: 760,
endShowContent: function(elts, settings) {

parent.$('#detailtv').treeview({
    prerendered: false,
collapsed: true
});
}
    });    
});
             
分享到:
评论

相关推荐

    ajaxFileUpload 报这错jQuery.handleError is not a function

    当你遇到“jQuery.handleError is not a function”的错误时,这意味着在使用ajaxFileUpload过程中,程序尝试调用jQuery的一个错误处理方法,但这个方法在当前版本的jQuery中并未定义。这个问题通常出现在从较旧的...

    jquery插件nyroModal在iframe中的使用

    使用了jquery的nyroModal插件和jquery.form.js插件,nyroModal插件的详细使用可参考 http://nyromodal.nyrodev.com/,jquery.form.js插件的详细使用网上搜索,可有很多资料。 示例的目的是iframe中弹出窗口后,遮罩...

    解决jquery submit()提交表单提示:f[s] is not a function

    在使用jQuery进行网页开发时,有时会遇到这样一个问题:当你尝试使用`submit()`函数来提交表单时,浏览器会抛出一个错误:“f[s] is not a function”或“document.getElementByIdx_x(...).submit is not a function...

    jquery-form.js

    当我们遇到错误提示“form.ajaxSubmit is not a function”,这意味着系统未能识别到ajaxSubmit方法,这时就需要引入jquery-form.js这个插件来解决此问题。 **jQuery Form插件简介** jQuery Form插件是Aaron Gelman...

    seajs加载jquery时提示$ is not a function该怎么解决

    本问题涉及到在使用Sea.js加载jQuery时遇到的一个常见问题,即在尝试使用jQuery时提示“$ is not a function”,这通常是由于模块加载机制不匹配导致的。 Sea.js 是一个遵循CMD规范的前端模块加载器,而jQuery 1.7...

    二维码生成js包qrcode.js

    qrcode包就是一个可以将字符串画出二维码的jquery包,这个里面包含了jquery1.8.3和qrcode以及jquery_qrcode包,在用的时候按照上面的顺序依次加载就可以了。调用方法qrcode()

    解决eWebEditor无法预先赋值问题,setHTML()失效

    利用jQuery等库提供的`$(document).ready()`函数可以更方便地确保DOM元素加载完毕后再执行操作: ```javascript $(document).ready(function() { eWebEditor1.setHTML('&lt;%=content%&gt;'); }); ``` **3. 同步内容至`...

    self.attachevent is not a function的解决方法

    `self.attachevent is not a function`错误主要源于尝试在非IE浏览器中使用IE特有的`attachEvent`方法来绑定事件监听器。 `attachEvent`是Internet Explorer(IE)浏览器特有的事件绑定方法,它允许你将事件处理...

    jQuery弹出层nyroModal的使用

    **jQuery弹出层nyroModal的使用** 在Web开发中,弹出层(Modal)是一种常见且实用的设计元素,用于显示额外的信息或交互,而不会中断用户的浏览流程。jQuery库中的nyroModal插件就是一个强大的工具,它允许开发者...

    js报$ is not a function 的问题的解决方法

    如果在页面中的某个脚本尝试使用$符号来调用一个方法时,而jQuery库还没有被加载或者被加载的顺序不正确,那么就会出现“$ is not a function”的错误。 了解了这个错误的原因后,解决方法相对简单。需要确保在JSP...

    jquery-2.table2excel

    jquery-2.table2excels. 1、需要引入jquery.js和jquery.table2excel.min.js 2、增加绑定事件,例子: ------------------- //导出excel $("#output").click(function(){ var myDate = new Date(); $("#example")....

    解决Layui中layer报错的问题

    然而在开发过程中,有时会遇到一些关于layer的报错问题,比如"Uncaught ReferenceError: layer is not defined",这通常是因为layer没有正确加载或者使用方式不正确导致的。 当出现"Uncaught ReferenceError: layer...

    jquery-migrate3.4版本

    在升级jQuery版本时,先引入jQuery Migrate,然后测试应用,根据Migrate的警告信息调整代码。这一步骤对于大型项目尤其重要,因为它可以避免因升级引发的大量未知问题。 总之,jQuery Migrate 3.4.0版本是一个宝贵...

    jquery.table2excel.js

    jquery.table2excel.js,一款挺好用的javascript导出插件,需要jquery-1.7.1.min.js的支持。使用方法: $(document).ready(function() { //导出excel $("#output").click(function(){ var myDate = new Date(); ...

    jquery.wordexport.js

    github打不开,调试HOSTS文件后,终于下载来了,有需要的可以直接下载

    jQuery插件imgAreaSelect 实例代码

    **jQuery插件imgAreaSelect详解** `imgAreaSelect`是一个基于jQuery的插件,它提供了在网页上选择图片区域的功能,常用于图片裁剪或选取特定部分。这个插件易于集成,灵活性高,且适用于各种项目,特别是那些需要...

    使用jquery.qrcode生成二维码(支持中文)

    使用jquery.qrcode生成二维码(支持中文) 原理:如果浏览器支持canvas,则使用canvas绘制二维码,否则使用table绘制,但是canvas效率比table高。 适用浏览器:IE8、360、FireFox、Chrome、Safari、Opera、傲游、搜狗...

    java,html,jquery,js各种报错解决方案

    3. **jQuery**:jQuery是一款简化JavaScript操作的库,其报错通常与选择器错误、DOM操作、插件冲突等有关。"jquery"文件可能包含jQuery的错误处理技巧和最佳实践,如使用$(document).ready()确保DOM加载完成后再执行...

Global site tag (gtag.js) - Google Analytics