首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ddslick方法onSelected马上就要运行了。

ddslick方法onSelected马上就要运行了。
EN

Stack Overflow用户
提问于 2012-11-06 22:25:20
回答 4查看 8K关注 0票数 6

我正在使用jQuery的ddSlick插件,只有当我从创建的下拉列表中选择了一个选项时,onSelected方法才应该运行。

唯一的问题是,我的以下代码似乎在页面加载后立即运行onSelected。

有谁能给我指个方向吗?

代码语言:javascript
复制
$('#flag').ddslick({
    imagePosition:"left",
    background:"none",
    width:"66px",
    onSelected: function(data){
        var chosenCountry = data.selectedData.value;
        chosenCountry = chosenCountry.toLowerCase();
        if(data.selectedIndex > 0) {
            if( new_url[1] in oc(['de', 'es','fr','it']) ) {
                console.log("translated pages");
            }
        } else {
            console.log("English site");
        }
    }   
});

jsFiddle

谢谢

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-11-07 18:20:26

我花了几个小时找出问题所在,然后发明了一个解决方案。

我直接在代码上修改了一些东西。

注意:您需要使用unminified version按照以下说明进行操作。

第220行上的

查找:

代码语言:javascript
复制
function selectIndex(obj, index) {

将其更改为:

代码语言:javascript
复制
function selectIndex(obj, index, a) {

线路270

查找:

代码语言:javascript
复制
if (typeof settings.onSelected == 'function') {
   settings.onSelected.call(this, pluginData);
}

将其更改为:

代码语言:javascript
复制
if (typeof settings.onSelected == 'function') {
    if (a !== true) settings.onSelected.call(this, pluginData);
}

,最后在第146行上

发现

代码语言:javascript
复制
selectIndex(obj, index)

然后将其更改为

代码语言:javascript
复制
selectIndex(obj, index, true)

希望这能有所帮助!

票数 12
EN

Stack Overflow用户

发布于 2014-09-30 12:09:57

它是肮脏和杂乱无章的,但它可以快速修复(我使用的是精简版本,不想换成我的一小段代码)。我刚刚定义了一个全局bool,并在第一次加载时将其设置为true。

代码语言:javascript
复制
var _ddlLoaded = false;
$(function () {
    $('#ddl').ddslick({
            data: ddlData,
             onSelected: function (data) {
                if(_ddlLoaded  === false) {
                    _ddlLoaded = true;
                }
                else {
                    console.log(data.selectedData.value);
                }
    });
});
票数 7
EN

Stack Overflow用户

发布于 2012-11-21 22:06:14

你可以随时查看ddSlick Remablized,它修复了这个问题,并添加了一堆其他很酷的功能,如键盘,类,和禁用/启用支持!

或者你想自己做这件事,去函数

function selectIndex(obj, index) {

在函数的底部,你会发现

//选择时的回调函数if ( settings.onSelected ==‘==’){ settings.onSelected.call(this,pluginData);}

删除以下注释上方的剪切并粘贴该部分

//If set to display to full html, add html

然后将if语句更改为

if (typeof settings.onSelected == 'function' && ddSelected.text().length > 0) {

Prashant Chaudhary本人甚至在推特上发布了ddSlick Remablized!在这里查看https://twitter.com/chaudharyp/status/268045906442584064

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13253054

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档