Magento javascript undefined不是函数jquery selectric?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Magento javascript undefined不是函数jquery selectric?相关的知识,希望对你有一定的参考价值。

我在我的网站上遇到问题,试图在标题中添加一些下拉菜单!

我正在使用带有Airhotels模块的Magento CE 1.8.0。

奇怪的是它在某些页面上有效,有些则没有。在我看来,直接与Airhotels模块相关的页面似乎不起作用,也许这是一个线索?

从这些图像中可以看出我收到错误undefined is not a function

  • 破碎

  • 工作的

我已将此行添加到All Pages下的airhotels.xml中

<action method="addJs"><script>airhotels/jquery.selectric.js</script></action>

这是我在public_htmlappdesignfrontenddefaultstylish emplatepagehtmlheader.phtml中的jQuery脚本

<script type="text/javascript">

var jQnc = jQuery.noConflict();

jQnc(document).ready(function(){

  jQnc('#header-profile-links').selectric();
  jQnc('#header-browse-links').selectric();
  jQnc('#custom-currency-selector').selectric(); 

  jQnc('#customOptions').selectric({
    onChange: function(element){
    if(jQnc(element).val().toLowerCase().indexOf("english") >= 0) {
        jQnc('p#labelFi').css('background','url(http://sleepmyhome.com/skin/frontend/default/stylish/images/flag_en.png) 10% 50% no-repeat');
        jQnc('p#labelFi').removeClass('labelFi').addClass('labelEn');
        window.location.href = jQnc(element).val();
        }
    if(jQnc(element).val().toLowerCase().indexOf("finnish") >= 0) {
        jQnc('p#labelEn').css('background','url(http://sleepmyhome.com/skin/frontend/default/stylish/images/flag_fi.png) 10% 50% no-repeat');
        jQnc('p#labelEn').removeClass('labelEn').addClass('labelFi');
        window.location.href = jQnc(element).val();
        }
    },
    optionsItemBuilder: function(itemData, element, index){
    jQnc('#customOptions').addClass("customOptions langSelectWidth");
        return element.val().length ? '<span class="ico ico-' + element.attr('title') +  '"></span>' + itemData.text : itemData.text;
    }
  });
});
</script>

任何帮助表示赞赏我真的被卡住了!

答案

我认为问题在于获得价值尝试类似的东西(这是一个坏例子 - 下一个是好的):

<ul class="customOptions">
    <li class="">Select something</li>
    <li class=""><span> Choice 1</span></li>
    <li class="selected"><span> Choice 2</span></li>
    <li class=""><span> Choice 3</span></li>
</ul>

使用JS代码:

$(function(){
    $('.customOptions').selectric({
        maxHeight: 300,
        onChange: function(element) {
           alert( $(element).val() );
        }
    });
});

结果是空的,

但现在尝试这样的事情:

<ul class="customOptions">
    <li class="">Select something</li>
    <li class=""><span data-value="value1"> Choice 1</span></li>
    <li class="selected"><span data-value="value2"> Choice 2</span></li>
    <li class=""><span data-value="value2"> Choice 3</span></li>
</ul>

把东西放进李 - 即。选择1,带有数据属性,您可以在其中放置一些自定

$(function(){
    $('.customOptions').selectric({
        maxHeight: 300,
        onChange: function(element) {
           alert( $('.selectricItems').find('.selected span').attr('data-value') );
        }
    });
});

我认为,如果你使用这种方法,你应该能够从data-attr中获取所选值并做任何你想做的事情。 (记住 - 不要将data-attr =“”放入LI标签 - 它不起作用)

以上是关于Magento javascript undefined不是函数jquery selectric?的主要内容,如果未能解决你的问题,请参考以下文章

text 弹出magento 2 javascript

javascript Magento 2 Minification Gulp Script

Magento Javascript弹出窗口

Javascript

JavaScript 用于Magento One Page Checkout的Google Analytics目标渠道

JavaScript数组实例