如果函数不存在,jQuery会中断

时间:2012-03-11 09:57:32

标签: javascript jquery jquery-ui tinymce

如果在同一页面上我使用来自https://github.com/fnagel/jquery-ui

的selectmenu,Tinymce将停止工作

使用默认配置的Tinymce

并选择菜单:

$('select.flags').selectmenu();

修改

问题是在带有tinymce的页面上我没有加载selectmenu函数的脚本。我应该从运行所有函数的js中删除它,还是有任何方法可以修改它只在函数存在且能够运行时才能运行

2 个答案:

答案 0 :(得分:2)

使用此脚本的微小工作是否已添加到页面中,但未针对选择进行初始化?

您将selectmenu应用于页面上的每个选项。 tinymce使用选择,你肯定不想改变这些。

为您的选择提供类似

的课程
<select class="jquery_smenu"> ....

并更改您的选择器:

$('select.jquery_smenu').selectmenu();

我无法测试这就是微小停止工作的原因,但你应该改变它。

答案 1 :(得分:2)

这是让'功能不存在'问题消失的简单方法。

 $.fn.selectmenu = $.fn.selectmenu || $.noop
 $('select.jquery_smenu').selectmenu(); //do what you will

或者你可以这样做:

if( $.fn.selectmenu ){
   $('select.jquery_smenu').selectmenu(); //do what you will
}

对于记录,函数不存在或var不是函数是一个javascript问题而不是jQuery问题。希望这有帮助!